继承父类并实现多个接口

it2025-08-27  11

使用接口时注意:

1.接口是没有静态代码块或者构造方法的。

package cn.itcast.day09.java.接口静态; /** * @Author: Jason * @Date: 2019/8/3 21:36 * @Version 1.0 */ public interface demoInterface { // static { // 错误写法 // } // public MyInterface(){ 错误写法 接口不能有构造方法 // // } }

2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。

格式:

publlic class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB{

//覆盖重写所有抽象方法

}

 

package cn.itcast.day09.java.接口静态; public interface MyInterfaceA { public abstract void methodA(); }

package cn.itcast.day09.java.接口静态; public interface MyInterfaceB { public abstract void methodB(); } package cn.itcast.day09.java.接口静态; public class MyInterfaceImpl /* extends Object */ implements MyInterfaceA,MyInterfaceB { @Override public void methodA() { System.out.println("覆盖重写了A方法!"); } @Override public void methodB() { System.out.println("覆盖重写了B方法!"); } }

 

3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。

 

4.如果实现类没有覆盖重写所有的接口当中的抽象方法,那么实现类就必须是一个抽象类。

 

5.如果实现类所实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。

 

6.一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法。

java中继承优先于接口实现的。

package cn.itcast.day09.java.接口静态; public interface MyInterface { public default void method(){ System.out.println("接口的默认方法!"); } }

package cn.itcast.day09.java.接口静态; public class Fu { public void method(){ System.out.println("父类当中的方法!"); } } package cn.itcast.day09.java.接口静态; public class Zi extends Fu implements MyInterface { }

 

测试一下:

package cn.itcast.day09.java.接口静态; public interface demoInterface { public static void main(String[] args) { Zi zi = new Zi(); zi.method(); } }

显示:

最新回复(0)