1、接口
interface产生一个完全抽象的类,它根本就没有提供任何具体的实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。
2、为什么使用接口?
- 为了能够向上转型为多个基类型。
- 与使用抽象基类相同:防止客户端程序员创建该类的对象,并确保这仅仅是建立一个接口。
3、我们应该使用接口还是抽象类?
如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。事实上,如果知道某事物应该成为一个基类,那么第一选择是使它成为一个接口。
PS:
- 任何抽象性都应该是应真正的需求而产生的。当必需时,你应该重构接口而不是到处添加额外级别的间接性,并由此带来的额外的复杂性。
- 恰当的原则应该是优先选择类而不是接口。从类开始,如果接口的必需性变得非常明确,那么就进行重构。接口是一种重要的工具,但是它们很容易被滥用。