Java接口
Posted bushishucai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java接口相关的知识,希望对你有一定的参考价值。
接口是多个类的公共规范
接口是一种引用数据类型
各个版本
Java 7 : 1.常量 2.抽象方法
Java 8 : 3.默认方法 4.静态方法
Java 9 : 5.私有方法
注意
1. 接口中的抽象方法,修饰符固定 public abstract ,但可以省略
2. 接口不能有静态代码块和构造方法(不能new)
3. 一个类的直接父类是唯一的,但一个类可以同时实现多个接口
使用
1. 接口不能直接使用,必须有一个实现类来实现接口
2. 接口的实现类必须覆盖重写接口所有的抽象方法
3. 创建实现类的对象,进行使用
注意 : 如果实现类没有覆盖重写接口所有中的抽象方法,那这个实现类自己就必须是抽象类
接口的常量(成员变量)
1. 必须使用 public static final 来修饰,可省略,从效果上看,就其实就是接口的常量
2 .接口中的常量,必须进行赋值
3. 接口中常量的名称,全大写字母,用_分隔
接口的默认方法
从Java 8开始,接口中允许定义默认方法(用于解决接口的升级问题)
接口的默认方法,可以由接口实现类对象直接调用
接口的默认方法,可以被接口实现类覆盖重写
接口的静态方法
不能通过接口实现类的对象来调用接口的静态方法
一个类可以实现多个接口,可能会产生冲突,应该通过接口名称直接调用
接口的私有方法
我们要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题
但这个共有方法不应该让实现类使用,应该是私有化的
普通私有方法 : 解决多个默认方法之间的重复代码问题
private 返回值类型 方法名( 参数列表 ){ 方法体 }
静态私有方法 : 解决多个静态方法之间的重复代码问题
private static 返回值类型 方法名( 参数列表 ){ 方法体 }
实现多个接口时
1. 如果实现类所实现的多个接口中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写
2. 一个类的直接父类当中的方法,和所实现的接口中的默认方法产生冲突,优先用父类中的方法
接口之间的多继承
1. 多个父接口默认方法如果重复,那么子接口必须进行默认方法的覆盖重写,且带着default关键字
2. 多个父接口抽象方法如果重复,没关系
以上是关于Java接口的主要内容,如果未能解决你的问题,请参考以下文章