接口是一种完全抽象的类。
“interface”(接口)关键字使抽象的概念更深入了一层。我们可将其想象为一个“纯”抽象类。它允许创 建者规定一个类的基本形式:方法名、自变量列表以及返回类型,但不规定方法主体。接口也包含了基本数 据类型的数据成员,但它们都默认为static和final。接口只提供一种形式,并不提供实施的细节。 接口这样描述自己:“对于实现我的所有类,看起来都应该象我现在这个样子”。因此,采用了一个特定接 口的所有代码都知道对于那个接口可能会调用什么方法。这便是接口的全部含义。所以我们常把接口用于建 立类和类之间的一个“协议”。有些面向对象的程序设计语言采用了一个名为“protocol”(协议)的关键字,它做的便是与接口相同的事情。
满足以下条件是最好使用抽象类:
a)子类不继承其它父类
b)子类中存在完全相同的功能实现的方法
c)子类中存在相同的属性
d)设计出的结构需要继承其它类
当需要满足d条件时,只能使用抽象类,否则也可以考虑使用接口实现。
满足以下条件是最好使用接口:
a)子类已经继承了其它父类
b)子类中不存在完全相同的功能实现方法
c)子类中不存在相同的属性
d)设计出的结构不需要继承其它类
当需要满足a条件时,只能使用接口,否则也可以考虑使用抽象类实现。 |