interface A {void f1(); void f2();} interface B {void f3(); void f4();} class C implements A { public void f1() {} public void f2() {} } class D implements A,B { public void f1() {} public void f2() {} public void f3() {} public void f4() {} } abstract class C2 implements A { public void f1() {} } //================= interface A2 {void f1(); void f5();} class X implements A, A2 { public void f1() {} public void f2() {} public void f5() {} } //================= interface T extends A,B { public void f5(); } class D2 extends D implements T { public void f5() {} } // class Employee extends Person implements I1, I2 // { // .. // } //================= public class Main { public static void main(String[] args) { A a; B b; C c; D d; C2 c2; //a = new A(); //Cannot instantiate the type A //b = new B(); //Cannot instantiate the type B c = new C(); d = new D(); //x5 = new C2(); // Cannot instantiate the type C2 a = c; b = d; c = (C)a; d = (D)b; T t; t = (T)a; a = t; } }