(6)接口中的属性:只能是 final 的, 而且是 public static final 修饰符,而且属性必须初始化
(7)接口中属性的访问形式: 接口名.属性名
(8)接口不能继承其它的类,但是可以继承多个接口
(9)接口的修饰符只能是 public 和默认,这点和类的修饰符是一样的
三、访问接口中属性的三种方式
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(){}}