接口
接口我个人觉得就算一个比抽象类还抽象的抽象类,就是口头说的纯粹
接口可以更加规范的对子类进行约束,全面专业的实现:
规范和具体实现的分离
抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接 口是完全面向规范的,规定了一批类具有的公共方法规范。
接口就类似于我们现实生活中的法律或者是公约和规定
从接口的实现者角度看,接口定义了可以向外部提供的服务。
从接口的调用者角度看,接口定义了实现者能提供那些服务。
接口是两个模块之间通信的标准,
通信的规范。
如果能把你要设计的模块之间的接口定义好,就相当于完成了系统的设计大纲,剩下的就是添砖加瓦的具体实现了。
实际工作中,做系统时往往就是使用“面向接口”的思想来设计系统。
接口和实现类不是父子关系,是实现规则的关系。
比如:
我定义一个接口 Runnable,
Car 实现它就能在地上跑,
Train 实现它也能在地上跑,飞机实现它也能在地上跑。
就是说, 如果它是交通工具,就一定能跑,但是一定要实现 Runnable 接口。