美文网首页
关于接口与抽象类小结

关于接口与抽象类小结

作者: 先生zeng | 来源:发表于2020-02-13 23:11 被阅读0次

在面向对象编程中,定义类的过程就是对象的抽象和封装的过程,而接口与抽象类就是对实体类更高层次的抽象,仅定义公共行为和特征。接口与抽象类的共同点是都不能被实例化。

我们先来分析下两者的的区别:

被继承时:

一般来说抽象类在被继承时,体现的是is-a的关系,接口在实现时体现的是can-do的关系。就是继承抽象类的类,也是抽象类的一个,而对接口来说,就是能够做接口中的事。

我们在定义接口和抽象类时,举个例子: 老鹰是一种鸟,鸟是一个对象。我们应该把鸟定义成抽象类,老鹰去继承他。飞行是鸟都会的一种行为,我们需要把飞行定义成一个接口,fly()放在接口中,利用can-do的方式去定义这个fly的接口。

接口是最顶级的“类”,抽象类相当于二当家,抽象类对各个接口进行组合,然后实现部分接口行为。

当纠结定义接口还是抽象类时,优先推荐定义接口,符合接口隔离原则,按多维度划分为多个接口。

取自《码出高效JAVA开发手册》

相关文章

网友评论

      本文标题:关于接口与抽象类小结

      本文链接:https://www.haomeiwen.com/subject/vflrfhtx.html