packagec;publicclass main {publicstaticvoidmain(String[] args){B b =newB();System.out.println(b.a);System.out.println(A.a);System.out.println(B.a);}}interfaceA{int a =10;// 等价于 public static final a = 10;}classBimplementsA{}// 输出结果101010
要求:编写 a 类,b 类实现接口,遍历数组,调用共有的方法,如果遍历的是 b 类,即调用独有的方法
packagea;publicclass main {publicstaticvoidmain(String[] args){arr[] interface_arr =new arr[2];interface_arr[0]=newa();interface_arr[1]=newb();for(int i =0; i < interface_arr.length; i++){interface_arr[i].shared_method();// 如果是b对象就调用其独有的方法if(interface_arr[i]instanceof b){((b) interface_arr[i]).unique_method();}}}}interface arr{voidshared_method();}class a implements arr{publicvoidshared_method(){System.out.println("a类中调用了共有的方法");}}class b implements arr{publicvoidshared_method(){System.out.println("b类中调用了共有的方法");}publicvoidunique_method(){System.out.println("调用了b类独有的方法");}}// 输出结果
a类中调用了共有的方法
b类中调用了共有的方法
调用了b类独有的方法
(2)代码示例:多态传递
packaged;publicclass main {publicstaticvoidmain(String[] args){B b =newtest_class();A a =newtest_class();}}interfaceA{voida();}interfaceBextendsA{voidb();}class test_class implementsB{@Overridepublicvoida(){}@Overridepublicvoidb(){}}