接口的定义和实现
Java中的接口就是功能的封装, 用来扩展类的功能
接口也可以理解为一组操作规范,或者是一个协议
如何定义接口?
[修饰符] interface 接口名 {
功能,用方法表示, 接口中的方法默认使用public abstract修饰
}
如何使用接口?
class 类 implements 接口 {
重写接口中抽象方法
}
接口的说明
1 接口内容:接口中方法默认使用public abstract修饰, 接口中还可以定义public static final常量(接口中的成员变量默认使用它修饰) , public static 方法(通过接口名调用), public default方法(接口方法中如果使用default修饰,在接口中可以有默认的方法体,实现类可以重写该方法,也可以不重写),一般情况下,接口中只有抽象方法
2 类实现了接口,需要重写接口的抽象方法, 如果没有重写接口中所有的抽象方法,实现类需要定义为抽象类
3 接口是一种引用数据类型, 可以定义变量, 但是接口不能实例化对象, 接口引用需要赋值实现类对象, 或者接口的匿名内部类对象
4 接口多态, 接口引用调用接口中抽象方法,实际上执行的是实现类对象的方法. 接口存在就是为实现多态的.
5 一个类可以同时实现多个接口,各个接口之间用逗号隔开,需要重写所有接口的所有抽象方法
6 接口也支持继承,并 且接口支持多继承,各个接口用逗号隔开
接口的应用
1)使用接口用来封装功能(操作)
如在Flyable接口中封装了fly()飞行功能, 在Swimmable接口中封装swim()游泳功能
2)接口可以定义一组操作规范
如开发某个项目时, 在相似模块中有一些操作是相同的, 可以把这一组相同的操作封装在一个接口中,就相当于通过接口定义了一个操作规范
提倡面向接口的编程
1)接口使用比较灵活,一个类在继承父类的同时,可以实现多个接口
描述打工的学生
2) 接口比较容易扩展, 接口引用可以赋值各种实现类对象,经常把接口引用作为方法形参,在调用方法时,可以传递各种实现类对象
3) 接口可以使项目分层
分析项目不分层的弊端