提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档qi
一、接口是什么?
通俗易懂的讲,接口是一种通用的公共标准规范,只要符合规范都可以使用。从代码层面来讲,接口是多个类的公共规范,从类型的角度来讲,接口是一种引用类型,接口的特点如下:
- 接口类使用关键字interface修饰
- 接口不能存在静态代码块和静态方法:
public interface MyInterface{
//静态代码块
static{
}
//构造方法
public MyInterface(){
}
}
二、java的版本和接口类的方法:
- java7: 常量和抽象方法
- java8:默认方法和静态方法
- java9: 私有方法
三.接口定义抽象类和抽象方法的格式:
- 抽象类:修饰符+interface+类名称
- 抽象方法:[public]+[abstract] +返回值+方法名+参数列表
-
public interface MyInterface{ //抽象方法 public abstract myInterface(){ } }
四.接口定义默认方法:
- 格式:[public] [default] 返回值+方法名+参数列表+(方法体)
- 作用:接口新增方法而不会影响实现类的使用
- 特性:
- 默认方法会被实现类隐式继承;
- 接口的默认方法会被接口的实现类对象直接调用;
- 接口的默认方法会被实现类方法覆盖重写
五.接口的静态方法:
- 格式:[static]+返回值+方法名+参数列表+方法体
- 调用方式:静态方法不能通过接口类的对象调用静态方法,而是通过接口名直接调用静态方法来使用
六.接口的普通私有方法
- 作用:解决多个默认方法中的重复代码问题
- 格式:[private]+返回值+方法名
七.接口的静态私有方法
- 作用:解决多个静态方法中的重复代码问题
- 格式:[private] static+返回值+方法名
八.接口中常量的定义和使用
- 接口当中也可以定义“成员变量”,但是成员变量必须使用 [public] [static] [final]来修饰,可以被省略,但是一定存在
- 接口当中的常量必须被赋值,赋值后不能改变
- 接口中常量的名称使用完全大写字母,且通过下划线分割
九.接口的引用
- 接口不能直接使用,而是用过“实现类” 通过implement关键字来实现,多个接口的继承,被继承的接口使用,分割
public class MyInterfaceA implements MyInterface { }
- 接口方法的实现必须覆盖抽象类所有的抽象方法
- 接口使用不能直接通过接口类对象来使用,而通过创建实现类的对象来使用
- 如果实现类并没有覆盖重写接口中的所有的抽象方法,那实现类必须是抽象类
- 如果实现类实现的多个接口中,存在冲突的默认方法,则覆盖重写默认方法
- 如果实现类实现的多个接口中,存在重复的抽象方法,则只实现一个抽象方法、
- 接口实现中,如果父类的方法和接口中的默认方法冲突,则会优先使用父类中的方法,在java中,继承优先于接口实现