说说has a与is a的区别?
Posted programb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了说说has a与is a的区别?相关的知识,希望对你有一定的参考价值。
is a是典型的“一般到特殊”的关系,也就是典型的继承关系。例如Apple is a Fruit。那么Apple是一种特殊的Fruit,也就是说Apple继承了Fruit。
has a是典型的“组合”关系。比如Wolf has a Leg,也就是Leg组合成了Wolf。
需要指出的是:由于继承会造成了对父类的破坏,因此有时候可以通过组合来代替的继承。使用继承的好处:程序语义更好理解。坏处是:子类可能重写父类方法,不利于父类封装;使用组合则造成语义的混淆,但组合类不会重写被组合类的方法,因此更利于被复合类的封装。
以上是关于说说has a与is a的区别?的主要内容,如果未能解决你的问题,请参考以下文章
java中的集中关系,is a, has a, 继承,重点聊聊继承