接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。接口绝不能含有实例域,也不能在接口中实现方法,但可以含有常量。提供实例域与方法实现的任务应该由实现接口的那个类完成。某种程度上可以将接口看成是没有实例域的抽象类。
接口不是类,不能用new实例化一个接口(Comparable是一个接口):
x = new Comparable();//ERROR
尽管不能构造,却能声明一个接口:
Comparable x;//OK
接口变量必须引用实现了接口的类对象:
x = new Employee();//OK, provided Employee implements Comparable
接口可以用extends关键字进行扩展。
一个类可以实现多个接口。
表示通用属性有抽象类与接口两种方式,抽象类方法中每个类只能扩展于一个类,但一个类则可以扩展于多种接口。
C++支持多继承,Java不支持。Java的接口可以提供多继承的大多数好处,同时还能避免多继承的复杂性和低效性。