一、接口基本介绍
将一些没有实现的方法(抽象方法)封装到一起,在某个类要使用时,去通过接口实现这些方法。
二、接口基本语法
1.基本语法
(1)
interface 接口名{
属性,
方法
}
(2)
class 类名 implements 接口名{
自己的属性和方法,
实现的接口中的属性和方法。
}
在jdk7及以前,接口中所有的方法都是抽象方法。 在jdk8以后,接口中可以有自己的已经实现的方法。
2.语法详细
(1)接口中可有属性和方法。
属性形式:是public static final 类型 变量名; (public static final可省略),
调用:接口名.属性名。
也就是说接口中的属性只有公有的静态属性。
方法:1.抽象方法。2.实现的方法。3.静态方法。
1.抽象方法:public abstract 返回类型 方法名(); (public abstract可省略)
2.实现的普通方法:public default 返回类型 方法名(){ 方法体 }; (public可省略)
3.实现的静态方法:public static 返回类型 方法名(){ 方法体 }; (public可省略)
3.注意事项和细节
(1)接口不能被实例化。
(2)接口中的方法都是public的,抽象方法也不用abstract修饰。(指可以省略abstract)
(3)普通类实现接口,需实现接口中的所有抽象方法。
(4)抽象类实现接口,不用实现接口中的方法。
(5)一个类可 同时实现多个接口,接口之间可以单继承其他接口。但接口不能继承类。
(6)接口定义的修饰符只能是public和默认修饰符。
public的使用和类一样,都是在与文件名一致的类或接口前加public。
(7)接口中的抽象方法可以给实现接口的类一个统一的方法名。这样比较规范,便于进行统一的管理。
三、接口的深入讨论
1.接口和继承的比较
(1)接口实现是继承机制的补充。
继承后子类就有了父类的功能,但要想扩展新的功能就需要去实现新的接口。
即继承是is a 实现是like a 的关系。
(2)接口和继承解决的问题不同。
继承:解决代码复用性和可维护性问题。
接口:设计各种规范,让子类去实现,更加灵活。
(3)接口在一定程度上实现代码解耦。
2.接口的多态特性
(1)多态数组
接口类型[] 接口名 = new 接口类型[];
(2)多态参数
即接口的引用指向实现该接口的类的对象。
接口类型 接口名=new 子类对象();
跟类多态一样,也有上转型和下转型。
(3)接口中的多态传递现象
即子类实现了接口a,接口a又继承了另一个接口b,就相当于子类实现了接口b。