class A { void P () { WriteLine ("A"); } }
class B : A { void P () { WriteLine ("B"); } }
Variable mit statischem Typ A, dynamischem Typ B:
A x = new B (); x.P(); // druckt "A" oder "B"?
Möglichkeiten:
in B: void new P ()
in A: void virtual P();
in B: void override P();