// instantiate abstract public class a { void f() { new ii(); new c1(); new c1() { public void f2() {} }; new c1() { public void f1() {} }; new c1() { public void f1(int i) {} public abstract void f2(); }; new c1() { public void f1(int i) {} }; new ii() { public void f1(){} public void f2(){} }; } } abstract class c1 { abstract public void f1(int i); Object o = new c1[0]; } interface ii { abstract void f1(); void f2(); }