Java继承与多态(2)接口

概念一种引用数据类型,是一种公共的规范标准,符合这个标准的就可以用
格式public interface 接口名 {}
编译生成的字节码文件仍是.java–>.class
接口内容: java9及之后

  1. 常量
  2. 抽象方法
  3. 默认方法(java8)
  4. 私有方法(java9)

1 定义格式

1.1 抽象方法

接口抽象方法的定义
接口能定义抽象方法
注意:

  1. 接口中的抽象方法,修饰符固定是public abstract不能是其他
  2. 方法三要素可以随意定义

接口抽象方法的使用

  1. 接口不能直接使用,必须有一个实现类来实现接口
    格式:public class 实现类名称 implement 接口名称 {}
  2. 接口实现类必须覆盖重写(实现)接口中所有抽象方法
    实现:去掉abstract关键字,加上方法体大括号
    实现类软规定:接口名Impl(implement)
  3. 若实现类并未覆盖重写接口所有抽象方法,那么这个实现类自己必须是抽象类

idea快捷键:alt + enter实现类生成接口中的重写方法
在这里插入图片描述

1.2 默认方法

默认方法可以解决接口升级的问题
格式

public interface InterFaceName {
	public default void method() {
	// 执行语句
}

当接口新增一个抽象方法时,实现类会报错,因为实现类需要覆盖重写接口中所有抽象方法
解决方式就是接口新方法改为默认方法,这样将会被实现类继承
在这里插入图片描述
特点:

  1. 接口默认方法可以通过接口实现类对象直接调用
  2. 也可以被接口实现类覆盖重写

1.3 静态方法

解决多个静态方法之间代码重复的问题
格式

public static void method2() {
	// 执行语句
}

注意:不能通过接口实现类对象来调用接口中的静态方法
通过接口名称直接调用其中的静态方法接口名称.静态方法名
在这里插入图片描述

1.4 私有方法

接口中某些方法只被接口本身调用,不该被实现类调用,私有化的
解决接口中多个默认方法之间代码重复的问题
格式:在这里插入图片描述
在这里插入图片描述

1.5 接口中常量的定义和使用

接口中的成员变量必须使用public static final三个关键字修饰,必须复制且赋值后不可修改
常量名命名规则一般使用大写字母加下划线

public interface MyInterfaceConst {
    public static final int NUM_OF_MY_CALSS = 10;
}

2 继承父类并实现多个接口

注意:

  1. 接口没有静态方法块或构造方法
  2. 一个类可同时实现多个接口
  3. 如果实现的多个接口中存在重复的抽象方法,只需覆盖重写一次即可
  4. 如果实现类没有覆盖重写所有接口中的所有接口方法,那么实现类必须是抽象类
  5. 如果实现类所实现的多个接口中,存在默认重复方法,那么实现类一定要对冲突的默认方法覆盖重写
    在这里插入图片描述
  6. 一个类如果直接父类中的方法和接口中的默认方法冲突时,优先用父类方法. 在这里插入图片描述

3 接口之间的多继承

  1. 类与接口之间是多实现的,一个类可实现多个接口
  2. 接口之间是多继承的
  3. 多个父接口中的抽象方法可以重复
  4. 多个父接口的默认方法重复,子接口必须覆盖重写默认方法,而且带着default关键字
    在这里插入图片描述
发布了90 篇原创文章 · 获赞 4 · 访问量 1449

猜你喜欢

转载自blog.csdn.net/weixin_44145258/article/details/103334619