总结: 接口不能有静态代码块 接口不能有构造方法 一个类的父类是唯一的,但是一个类可以同时实现多个接口 如果实现类所实现的多个接口当中,存在重复的接口抽象方法,那么只需
总结:
流图:
代码:
public abstract class InterfaceImpl extends InterfaceImplParentimplements Interface1,Interface2,Interface3,Interface4,Interface5,Interface6 {
//重写接口1中的抽象方法
@Override
public void method1() {
System.out.println("覆盖重写接口1的抽象方法1");
}
//重写接口2中的抽象方法
@Override
public void method2() {
System.out.println("覆盖重写接口2的抽象方法2");
}
//该实现类未覆盖重写接口3中的method3抽象方法,所以该类必须要以abstract修饰
//接口1和接口2中存在重复的method抽象方法,只需要覆盖重写其中一个
@Override
public void method() {
System.out.println("覆盖重写接口1或接口2的方法");
}
//接口4和接口5存在重复的defaultMethod方法,实现类必须覆盖重写该方法
@Override
public void defaultMethod() {
System.out.println("覆盖重写接口4和接口5的默认方法");
}
//该实现类继承了父类InterfaceImplParent的公开方法method6
}
public interface Interface1 {
//Error:接口中不能有构造方法
//Interface1();
//Error:接口中不能有静态代码块
//static{
//
// }
void method();
void method1();
}
public interface Interface2 {
void method();
void method2();
}
public interface Interface3 {
void method3();
}
public interface Interface4 {
default void defaultMethod(){
System.out.println("这是接口4中的默认方法");
}
}
public interface Interface5 {
default void defaultMethod(){
System.out.println("这是接口5中的默认方法");
}
}
public interface Interface6 {
default void method6() {
System.out.println("这是接口6中的默认方法6");
}
}
public class InterfaceImplParent {
public void method6() {
System.out.println("这是InterfaceImplParent类中的方法6");
}
}
//*测试类*
public class InterfaceTest extends InterfaceImpl {
@Override
public void method3() {
System.out.println("实现接口3中的抽象方法");
}
public static void main(String[] args) {
InterfaceTest interfaceTest = new InterfaceTest();
interfaceTest.method1();
interfaceTest.method2();
interfaceTest.method3();
interfaceTest.defaultMethod();
//如果一个类的父类中的公开方法,与该类实现的接口中的默认方法产生了冲突 ,则优先用父类中的公开方法
interfaceTest.method6();
}
}