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