Demo01Interface

package InterfaceandExtend;/** 1.接口不能有静态代码块和构造方法* 2.一个类的直接父类是唯一的,但是一个类可以同事实现多个接口。*        public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {}* 3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。* 4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。* 5.如果实现类所实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。(第3条和第五条是类似的,只要一样,就重写一次,要让程序知道该听谁的话)* 6.一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法。(Java中继承大于接口)* */public class Demo01Interface {public static void main(String[] args) {MyInterfaceABImpl myInterfaceAB = new MyInterfaceABImpl();myInterfaceAB.methodA();myInterfaceAB.methodB();myInterfaceAB.methodAbs();//重写一次即可myInterfaceAB.methodDefault();}
}

MyInterfaceA.java

package InterfaceandExtend;public interface MyInterfaceA {public abstract void methodA();public abstract void methodAbs();public default void methodDefault() {System.out.println("接口A中的默认方法");}
}

MyInterfaceB.java

package InterfaceandExtend;public interface MyInterfaceB {public abstract void methodB();public abstract void methodAbs();//public abstract void methodElse();public default void methodDefault(){System.out.println("接口B中默认方法");}
}

MyInterfaceABImpl.java

package InterfaceandExtend;public class MyInterfaceABImpl implements MyInterfaceA,MyInterfaceB{@Overridepublic void methodA() {System.out.println("重写A");}@Overridepublic void methodAbs() {System.out.println("重写Abs");}@Overridepublic void methodB() {System.out.println("重写B");}@Overridepublic void methodDefault() {MyInterfaceA.super.methodDefault();//两个中都有,只需要覆盖重写一个,必须要,不然不知道听哪个的话System.out.println("对多个接口当中冲突的默认方法进行了覆盖重写");}}

对于第六条:
一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方

Fu.java

package InterfaceandExtend.FuZiInterface;public class Fu {public void method(){System.out.println("父类的方法");}
}

Zi.java

package InterfaceandExtend.FuZiInterface;public class Zi extends Fu implements MyInterface{}

MyInterface.java

package InterfaceandExtend.FuZiInterface;public interface MyInterface {public default void method(){System.out.println("接口的默认方法");}
}

Zi.java

package InterfaceandExtend.FuZiInterface;public class main {public static void main(String[] args) {Zi zi = new Zi();zi.method();}
}
//输出结果
//父类的方法

24继承父类并实现多个接口相关推荐

  1. 【零基础学Java】—继承父类并实现多个接口(二十五)

    [零基础学Java]-继承父类并实现多个接口(二十五) 一.使用接口的注意事项 1️⃣接口是没有静态代码块或者构造方法的 2️⃣一个类的直接父类是唯一的,但是一个类可以同时实现多个接口 3️⃣如果实现 ...

  2. 接口【四】继承父类并实现多个接口

    接口[四]继承父类并实现多个接口 继承父类接口 接口间的多继承 继承父类接口 使用接口时需要注意: 1.接口没有静态代码块或者构造方法的. 先创建一个接口 public interface MyInt ...

  3. 接口抽象类继承父类和子类

    1.接口是什么? 接口可以理解为一个特殊的抽象类,是由全局常量和公共抽象方法组成的. 所以,如果,一个抽象类的方法都是抽象的,那么就可以通过接口的形式来表示. class 用于定义类 interfac ...

  4. 继承父类 , 实现接口 时, 方法的权限

    在说这个问题之前,先简单介绍一下接口中的方法的访问权限 接口中所有的方法,默认都是 public abstract 所有的属性,默认都是public static final 接口中定义不了,访问权限 ...

  5. java类注解是否可以通过实现接口或继承父类的方式获得

    接口类 @Service public interface UserService {public void get(); } 实现类 public class UserServiceImpl imp ...

  6. Java - Java子类继承父类并调用接口

    父类代码: 功能:定义一个vehicle类及其中的set函数及get函数 public class vehicle {private double speed;private String name; ...

  7. 假设一个类,继承了父类并且实现了一个接口,然后父类和接口有一个同名的方法,那么此时会发生什么情况,编译会提示出错吗?如果不出错,那么这到底算是重写还是实现接口方法?

    (本人总结,可能现在有记错的地方,欢迎斧正): (1)方法为静态方法,接口不能有静态方法,所以只能接口为非静态方法,而父类为静态方法,此时该类会编译报错,提示为静态方法与接口的抽象方法冲突. (2)父 ...

  8. Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)

    Java面向对象编程包含哪些内容? 怎么理解面向对象编程? 现实生活中,我们定义了"人"的抽象概念,这就是类class,生活中的每一个具体的人就是实例instance. class ...

  9. Java基础:继承、多态、抽象、接口

    第一讲    继承 一.继承概述 1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 2.通过extends关键字可以实现类与类的 ...

最新文章

  1. PVN3D: 基于Deep Point-wise 3D关键点投票的6D姿态估计网络(香港科技大学提出)
  2. 驱动和应用层通信列子
  3. 前端基础(一):js数据类型
  4. Linq使用Group By 1
  5. event.target【转载】
  6. 六种方式实现hibernate查询
  7. 22 为特性 采购申请凭证类型 解决第一个矛盾
  8. Unity播放声音的两种方式以及相关遇到的
  9. ARPSpoofing教程(四) - 捕获并分析数据包
  10. 世界杯:裁判看了视频后判罚更重?
  11. python爬取千图网高清图
  12. 腾讯课堂课程汇总 CourseList(1000000-1001000)
  13. 高斯混合模型(GMM)实现和可视化
  14. android文字转语音模板,Android-文字转语音
  15. 怎么找回删除的文件?尝试下这些恢复数据的方法
  16. 退役感言 [Away From OI]
  17. Firefox下载文件中文乱码问题
  18. vue向后台请求数据的配置和方法
  19. 程序员的奋斗史(五)——谦逊才是王道
  20. 软件测试面试拿offer拿到手软,这份简历你值得一看

热门文章

  1. python 编译函数_在Python的Django框架中编写编译函数
  2. 英特尔530和535哪个好_详细介绍2020版联想小新Air 14酷睿版和锐龙版怎么选,哪款好...
  3. word技巧 很有用~
  4. JZOJ__Day 1:【普及模拟】PLES
  5. 约数研究pascal程序
  6. Luogu P4709 信息传递 (群论、生成函数、多项式指数函数)
  7. 如何断开mongodb数据库连接_如何连接远程mongodb数据库
  8. react 引用本地js_从零配置webpack 4+react脚手架(二)
  9. windows的php如何安装目录结构,禅道的目录结构
  10. 原型、原型对象、构造函数、原型链理解