Java中所有的类都是Object的直接或者间接子类
继承父类并实现多个接口
在调用默认方法时如果实现对象中有该方法(进行了覆盖重写),那么就会使用该方法,如果没有就会向上面的接口中找该默认方法。
3、我爸让我吃饭、我妈也让我吃饭
5、我把让我学习、我妈让我吃饭
A接口
package interfaceAttention;
public interface InterfaceA {
public abstract void methodA();
public abstract void method();
public default void methodDefault(){
System.out.println("A接口的默认方法");
}
}
B接口
package interfaceAttention;
public interface InterfaceB {
public abstract void methodB();
public abstract void method();
public default void methodDefault(){
System.out.println("接口的默认方法");
}
}
同时实现AB两个接口的实现类
package interfaceAttention;
public class InterfaceClass /*extends Object*/ implements InterfaceA,InterfaceB{
@Override
public void methodA() {
System.out.println("A接口的抽象方法覆盖重写");
}
@Override
public void methodB() {
System.out.println("B接口的抽象方法覆盖重写");
}
// 在两个接口中重复的抽象方法,只需覆盖重写一次
@Override
public void method() {
System.out.println("AB两个接口重名的抽象方法重写");
}
// 在两个接口中的默认方法重名,必须覆盖重写
@Override
public void methodDefault() {
System.out.println("AB两个接口重名的的默认方法覆盖重写");
}
}
使用
package interfaceAttention;
public class Main {
public static void main(String[] args) {
InterfaceClass obj = new InterfaceClass();
obj.method();
obj.methodA();
obj.methodB();
obj.methodDefault();
}
}
接口之间的多继承