接口
public interface MyInterfaceAbstract {
public abstract void methodAbs1();
abstract void methodAbs2();
public void methodAbs3();
void methodAbs4();
}
注意事项
- 接口不能有静态代码块
public interface MyInterface {
static {}
}
- 接口不能有构造方法
public interface MyInterface {
public MyInterface() {}
}
- 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口
public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {
}
- 如果实现类所实现的多个接口中,有重复的抽象方法,那么只需要实现一次即可
- 如果实现类没有覆盖重写所有接口中的所有抽象方法,那么实现类就必须是一个抽象类
- 如果实现类所实现的多个接口中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写,即使是抽象类也不行
- 一个类如果继承父类的方法,和接口中的默认方法产生了冲突,优先使用父类方法
总结
- 类与类之间是单继承的,一个类只有一个直接父类
- 类与接口之间是多实现的,一个类可以实现多个接口
- 接口与接口之间是多继承的
- 多个父接口当中的抽象方法如果重复,没关系
- 多个父接口当中的默认方法如果重复,那么子接口必须覆盖重写默认方法,而且带着default关键字