public class A {
public virtual void Write() { Console.Write(“A”); }
}
public class B: A {
public override void Write() { Console.Write(“B”); }
}
public class C: B {
new public virtual void Write() { Console.Write(“C”); }
}
public class D: C {
public override void Write() { Console.Write(“D”); }
}
...
D d = new D(); C c = d; B b = c; A a = b;
d.Write(); c.Write(); b.Write(); a.Write();
Why doesn’t D Write() override B Write() if the actual object that b is referencing is D?
New contributor
Mike Lol is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1