说说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, 继承,重点聊聊继承

14期你能说说进程与线程的区别吗

Python之is与==的区别

TP5 关联方法 hasOne 与 BelongsTo的区别

Python— is与=区别

python中==和is的联系与区别