using System; namespace Erb { class A { // kein dynamischer Dispatch public void Q () { Console.WriteLine ("A.Q"); } // dynamischer Dispatch public virtual void T () { Console.WriteLine ("A.T"); } // dynamischer Dispatch public virtual void S () { Console.WriteLine ("A.S"); } } class B : A { // hiding ( verstecken) public new void Q () { Console.WriteLine ("B.Q"); } // überschreiben public override void T () { Console.WriteLine ("B.T"); } public new virtual void S () { Console.WriteLine ("B.S"); } } class C : B { public override void S () { Console.WriteLine ("C.S"); } } class Top { public static void Main (string [] args) { B z = new C (); z.S(); } } }