Java接口
一、什么是接口
生活中的接口:一种公共的规范标准;
Java中的接口:多个类的公共规范;是一种引用数据类型,其中最重要的是:抽象方法
二、接口中的抽象方法
(一)定义接口:public interface 接口名称 { }
编译生成的字节码文件仍然是.java->.class
Java7:常量+抽象方法
Java8新增默认方法+静态方法
Java9新增私有方法
(二)定义抽象方法
public abstract void methods();
注:接口当中的抽象方法,修饰符必须是两个固有的关键词:public abstract
接口使用
(三)实现类
1.接口不能直接使用,需要有一个实现类来实现该接口
public class 实现类名称 implements 接口名称{}
2.接口的实现类必须覆盖重写(实现)接口中所有的抽象方法
实现:去掉abstract关键字,加上方法体大括号
快捷键Ctrl+o
(四)创建类实例的对象,进行使用
注:如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类abstract
三、其他方法
1.默认方法:接口中写实现{方法体}
public default 返回值类型 方法名称(参数列表){方法体}
2.静态方法:通过接口名称直接调用
public static 返回值类型 方法名称(参数列表){方法体}
3.私有方法:普通私有方法和静态私有方法
private (static)返回值类型 方法名称(参数列表){方法体}
通过接口名称直接调用
四、接口中的常量---成员变量
public static final 不写也是一样的
接口中的常量必须赋值,不赋值会报错
五、注意
接口不能有静态代码块+构造方法
一个类的直接父类(Object)是唯一的,但是一个类可以同时实现多个接口【单继承多实现】
实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次
实现类所实现的多个接口当中,存在重复的默认方法,那么实现类需要对冲突的默认方法进行覆盖重写
父类中的方法和接口中的默认方法冲突,优先使用父类的方法
接口与接口是多继承的(多个父接口中抽象方法重复,没关系;多个父接口中的默认方法重复,子接口需要重写)