package Polymorphie; public class WS1617 { public static void main(String[] args) { class A { public void print() { System.out.print("A+"); this.print(this); } public void print(A a) { System.out.print("M+"); } } class B extends A { public void print() { System.out.print("B+"); } public void print(A a) { System.out.print("X+"); } public void print(B b) { System.out.print("Y+"); super.print((A)b); } } A a = new A(); B b = new B(); a.print(a); // Statement 1 -> M+ b.print(b); // Statement 2 -> Y+M+ a.print(); // Statement 3 -> A+M+ a.print((A)b); // Statement 4 -> M+ ((B)a).print((A)b); // Statement 5 -> ClassCastException a = b; ((A)a).print(b); // Statement 6 -> X+ ((B)a).print(b); // Statement 7 -> Y+M+ b.print(a); // Statement 8 -> X+ } }