evo primera:
prikazane su klase i izvedene klase
class A
{
public virtual void F() { Console.WriteLine("I am A"); }
}
class B : A
{
public override void F() { Console.WriteLine("I am B"); }
}
class C : B
{
public new virtual void F() { Console.WriteLine("I am C"); }
}
class D : C
{
public override void F() { Console.WriteLine("I am D"); }
}
sada se instanciraju objekti klase A i klase B a1 i b1 pozivanjem podrazumevanih konstruktora A(); i B();
A a1 = new A();
a1.F(); // I am A
B b2 = new B();
b2.F(); // I am B
kako sad da tumacim ovakve izraze:
A b1 = new B();
A c1 = new C();
A d1 = new D();
?????