实现多接口和接口的多继承---Java
/*使用接口的时候,需要注意:
* 1.接口是没有静态代码块或者构造方法的
* 2.一个类的直接父类只有一个,但是一个类可以同时实现多个接口;
* 格式:
* public class MyInterfaceA implements MyInterfaceA, MyInterfaceB{
* //覆盖重写所有抽象方法
* }
*
* 3. 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可
*
* 4.如果实现类没有覆盖重写所有接口的所有抽象方法,那么实现类就必须是一个抽象类
*
* 5. 如果实现类实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法实现重写
*
* 6. 一个类如果直接父类的方法,和接口中默认的方法起了冲突,优先使用父类当中的方法*/
public interface MyInterfaceA { //错误写法:接口不能有静态代码块 // static { // // } //错误写法:接口不能有构造方法 // public MyInterfaceA(){ // // } public abstract void methodA(); public abstract void methodAbs(); public default void methodDefault(){ System.out.println("默认方法AAA"); } }
package cn.itcast.day10.demo02; public interface MyInterfaceB { public abstract void methodB(); public abstract void methodAbs(); public default void methodDefault() { System.out.println("默认方法BBB"); } }
/*
* 1. 类与类之间是单继承的,直接父类只有一个
* 2. 类与接口之间是多实现的,一个类可以实现多个接口
* 3. 接口与接口之间是多继承的
*
* 4. 多个父接口中的抽象方法如果冲突,没关系
* 多个父接口中的默认方法如果冲突,有关系
* */
public interface MyInterfaceA<pu> { public abstract void methodA(); public abstract void methodCommon(); public default void methodDefault(){ System.out.println("AAA"); } }
public interface MyInterfaceB { public abstract void methodB(); public abstract void methodCommon(); public default void methodDefault(){ System.out.println("BBB"); } }
/* * 这个子接口中有几个方法? * 4个方法{ * methodA、methodB、methodCommon、method * } * */ public interface MyInterface extends MyInterfaceA, MyInterfaceB{ public abstract void method(); @Override default void methodDefault() { } }
public class MyInterfaceImpl implements MyInterface{ @Override public void method() { } @Override public void methodA() { } @Override public void methodB() { } @Override public void methodCommon() { } }
本文作者:云谷の风
本文链接:https://www.cnblogs.com/zeon/p/13479176.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步