interface A1 { A1 m(); } abstract class A2 implements A1 { public abstract A2 m(); } interface B1 { A1 m(); } interface B2 extends B1 { A2 m(); } abstract class C extends A2 implements B2 { }