1.接口的默认方法.默认方法允许为接口方法定义默认实现..
默认方法的主要作用是,在不破坏现有代码的情况下.提供一种扩展接口的方式...
另一个作用是定义接口中的方法.
默认方法包括了默认实现.所以实现类不一定要实现重写它.
2.默认方法的实际应用.假如定义了一个MyObj的接口示例.
public interface MyObjA{
int getAge();
default in[] getNum(){
int [] num = new int[]{1,2};
retrun num;
}
}
public interface MyObjB{
int getAge();
default in[] getNum(){
int [] num = new int[]{1,2};
retrun num;
}
}
3.多继承问题:
java不支持多重继承.可以实现多个接口
假如 MyObjA和 MyObjB 由实现了MyKing类实现.
都提供了getNum() 并且是默认的实现,会发生什么?
首先.看MyKing是有自己的getNum()重写版本,,,,,没有就报错.
如果MyKing继承MyObjB,MyObjB继承MyObjA,首先.看MyKing是有自己的getNum()重写版本,,,,,有则掉用自己的getNum.没有则调用MyObjB的getNum.因为MyObjB覆盖了MyObjA.
4.一个或者多个static的方法.用法和类中的static一样....接口定义的static方法可以由任何对象调用.因此接口的实现不是必须的.
static接口方法不能被实现类继承.也不能被子接口继承