接口的特性
接口不可以被实例化
实现类必须实现接口的所有方法
实现类可以实现多个接口
接口中的变量都是静态常量
如何使用接口
1.编写接口
public interface UsbInterface {
/**
* USB接口提供服务。
*/
void service();
}
2.实现接口
public class UDisk implements UsbInterface {
public void service() {
System.out.println("连接USB口,开始传输数据。");
}
}
3.使用接口
UsbInterface uDisk = new UDisk();
uDisk.service();
多个接口使用“,”分隔
一个类可以实现多个接口
接口有比抽象类更好的特性:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
抽象类vs接口
1.相同点
代表系统的抽象层
都不能被实例化
都能包含抽象方法
用于描述系统提供的服务,不必提供具体实现
2.不同点
在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法
抽象类便于复用,接口便于代码维护
一个类只能继承一个直接的父类,但可以实现多个接口
3.使用原则
接口做系统与外界交互的窗口
接口提供服务
接口本身一旦制定,就不允许随意修改
抽象类可完成部分功能实现,还有部分功能可作为系统的扩展点
面向对象设计原则
1.多用组合,少用继承
2.针对接口编程
3.针对扩展开放,针对改变关闭
总结