Bird
0
0

What is wrong with this code snippet?

medium📝 Debug Q14 of 15
C Sharp (C#) - Polymorphism and Abstract Classes
What is wrong with this code snippet?
class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal speaks");
    }
}
class Dog : Animal {
    public void Speak() {
        Console.WriteLine("Dog barks");
    }
}

Animal a = new Dog();
a.Speak();
ADog's Speak method should be marked override to override base virtual method.
BAnimal's Speak method should not be virtual.
CDog's Speak method should be static.
DNo error; code runs and prints "Dog barks".
Step-by-Step Solution
Solution:
  1. Step 1: Check method overriding rules

    To override a virtual method, the child method must use override keyword.
  2. Step 2: Analyze given code

    Dog's Speak method lacks override, so it hides base method instead of overriding. Virtual dispatch calls base method.
  3. Final Answer:

    Dog's Speak method should be marked override to override base virtual method. -> Option A
  4. Quick Check:

    Override keyword needed to override virtual method [OK]
Quick Trick: Override keyword required to override virtual method [OK]
Common Mistakes:
MISTAKES
  • Forgetting override keyword in child method
  • Assuming method hides base automatically
  • Confusing virtual and override keywords

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More C Sharp (C#) Quizzes