interface接口
接口:
可以理解为是一种特殊的抽象类
抽象类: 是一个事物所具有的功能
接口: 是一个事物额外的功能
二者之间的选择: 推荐使用接口
如果父类的功能是有功能体实现的,也有只定义功能子类可以具有的功能但是没有实现,可以抽象类
接口的优点:
1.提高代码的复用性
2.解耦 (降低耦合性)------面向对象的特点高内聚低耦合
3.定义编程规范
4.接口多实现
使用interface定义接口 (例如 interface A)
组成:
jdk1.7及之前: | 之后 | |
---|---|---|
属性 | public static final 类型 变量名 | public static final 可以省略, 默认 |
方法 | public abstract 返回值类型 方法名(); | 返回值类型 方法名(); |
注意:
1.接口不能实例化
2.接口需要实现,实现接口使用关键字implements,实现了接口就拥有了接口中的功能(与继承很像)
3.接口的使用:
1)具体的实现类:实现了接口,就要重写这个接口中的所有抽象方法+按需新增
2)抽象的实现类:重写部分抽象功能+按需新增
4.类只能实现接口,不能继承接口,但是类只能继承类,不能实现类 类单继承类,类多实现接口
5.接口不能继承和实现类,接口只能继承接口,不能实现接口,接口可以多继承接口
6.一个类要先继承后实现
interface A{
/*public static final */int a = 10;
/*public abstract*/ void a();
}
interface B{
void b();
}
interface R extends A,B{}
class C{}
class D extends C implements R{
@Override
public void a() {
}
@Override
public void b() {
}
}
jdk1.8新增功能:
1.静态方法
使用:只能通过接口名字调用
2.默认的方法
使用:只能通过实现类的对象使用