A.class B implements A { int method 1(){} int method 2(){} }
B.class B { int method 1(int i){} int method 2(int j){} }
C.class B implements A { int method 1(int i){} int method 2(int j){} }
D.class B extends A { int method 2(int j){} int method 1(int j){} }