Bird
0
0

Find the error in this code:

medium📝 Debug Q7 of 15
Java - Abstraction

Find the error in this code:

abstract class Animal {
    abstract void sound();
}
class Dog extends Animal {
    void sound() {
        System.out.println("Bark");
    }
}
class Puppy extends Dog {
    void sound() {
        System.out.println("Yip");
    }
}
public class Test {
    public static void main(String[] args) {
        Animal a = new Puppy();
        a.sound();
    }
}
AAnimal class must implement sound()
BNo error; code runs and prints 'Yip'
CPuppy class cannot override sound()
DDog class must be abstract
Step-by-Step Solution
Solution:
  1. Step 1: Check method overriding chain

    Animal declares abstract sound(), Dog implements it, Puppy overrides it again.
  2. Step 2: Analyze main method output

    Animal reference points to Puppy object, so Puppy's sound() prints 'Yip'.
  3. Final Answer:

    No error; code runs and prints 'Yip' -> Option B
  4. Quick Check:

    Overriding works; abstract method implemented once [OK]
Quick Trick: Subclasses can override implemented methods freely [OK]
Common Mistakes:
  • Thinking Dog must be abstract if it implements method
  • Believing Puppy cannot override method
  • Assuming abstract class must implement abstract methods

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Java Quizzes