Bird
0
0

Consider this code:

hard🚀 Application Q9 of 15
C Sharp (C#) - Inheritance
Consider this code:
class Base {
    public virtual void Action() { Console.WriteLine("Base"); }
}
class Derived : Base {
    public sealed override void Action() { Console.WriteLine("Derived"); }
}
class MoreDerived : Derived {
    // No override here
}

Base obj = new MoreDerived();
obj.Action();

What will be the output and why?
A"Base" because MoreDerived does not override Action.
BCompilation error due to sealed method.
C"Derived" because MoreDerived inherits sealed override from Derived.
DRuntime error due to method sealing.
Step-by-Step Solution
Solution:
  1. Step 1: Understand sealed override effect

    Derived seals the override, so MoreDerived inherits Derived's implementation.
  2. Step 2: Check method call via base reference

    Calling Action on MoreDerived instance calls Derived's sealed override.
  3. Final Answer:

    "Derived" because MoreDerived inherits sealed override from Derived. -> Option C
  4. Quick Check:

    Sealed override inherited = calls sealed method [OK]
Quick Trick: Sealed override is inherited and called if not overridden further [OK]
Common Mistakes:
MISTAKES
  • Expecting base class method to run
  • Thinking sealed causes compile or runtime error here
  • Assuming MoreDerived must override sealed method

Want More Practice?

15+ quiz questions · All difficulty levels · Free

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