面向接口编程
比如,计算机的硬盘坏了,怎么办?原有计算机中硬盘的接口是什么样?必须是什么接口的,只要你是这样的接口,就可以和我进行通信,只要你实现了这个接口,就可以连接。
接口制定的一些规则,
一、接口的声明
public interface MyInterface {
}
- public访问权限
- inerface关键字,表明这是一个接口
- 接口内部只允许声明常量和抽象方法,所以常量的声明,可以省略final,抽象方法的声明可以省略abstract,同时,常量、抽象方法都默认是public的,(不过习惯,每个方法、常量都给它加上public)
二、接口的实现
implements
public class MyClass implements MyInterface {
@Override
public void f1() {
}
@Override
public void f2() {
}
}
- 实现接口必须实现接口中所有的方法
- 实现接口的类可以是抽象类,但可以不实现接口中的方法
- 如果一个类的父类实现某个接口,则子类默认实现该接口
- 一个类可以实现多个接口,接口间用逗号隔开
三、接口的回调
可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法。实际上,当接口变量调用被类实现的接口方法时,就是通知相应的对象调用这个方法。
四、理解接口
- 接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示
- 可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法,即体现该类根据接口里的行为标准给出的具体行为
接口的思想在于它可以要求某些类有相同名称的方法,但方法的具体内容(方法的内容)可以不同,即要求这些类实现接口,以保证这些类一定有接口中所声明的方法(即所谓的方法绑定)。接口在要求一些类有相同名称的方法的同时,并不强迫这些类具有相同的父类。
五、接口与抽象类
本质区别:抽象类可以包含抽象方法和非抽象方法、变量、常量;接口中只能有常量、抽象方法。
抽象类:实现代码的复用
接口:实现多态
六、编程模拟计算机读取U盘和MP3、移动硬盘的数据操作过程
Autor:VincentAdamNemessis
E-mail:vincent5519@yeah.net
QQ:3377299629
Wechat:ZTXLoveC3344