10.10 继承父类并实现多个接口
- 接口没有静态代码块或者构造方法;
- 一个类的直接父类是唯一的,但一个类可以同时实现多个接口;
- 格式:
public class 实现类名称 implements 接口A,接口b {
覆盖重写所有抽象方法
}
- 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可;
- 如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类;
- 如果实现类实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写;
package com.xww.day10.demo01;
//接口A
public interface MyInterfaceA {
public abstract void methoda();
public abstract void methodab();
public default void method(){
}
}
package com.xww.day10.demo01;
//接口B
public interface MyInterfaceB {
public abstract void methodb();
public abstract void methodab();
public default void method(){
}
}
package com.xww.day10.demo01;
//实现类
public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB {
@Override
public void methoda() {
System.out.println("接口A中的抽象方法");
}
@Override
public void methodb() {
System.out.println("接口B中的抽象方法");
}
@Override
public void methodb() {
System.out.println("接口A和B中的重复的抽象方法");
}
@Override
public void method() {
System.out.println("覆盖重写A和B中重复的默认方法");
}
}
- 一个类如果直接定义父类当中的方法,和接口当中的默认方法产生了冲突,优先使用父类当中的方法。