class A {} class B: A{} class Client{ public static void Main (){ // Static type Dynamic type A x; // A - B y; // B - x = new A(); // A A TRIVIAL y = new B(); // B B TRIVIAL x = y; // A B OK - TYPICAL y = new A(); // B A Compile time ERROR // Cannot implicitly convert type 'A' to 'B'. y = x; // B B Compile time ERROR ! // Cannot implicitly convert type 'A' to 'B'. } }