OO 常见面试题

composition vs inheritance

composition mean  A has B or A contains B.   (A has a property whose type is B)

inheritance mean A is B.  (A extend B)

 

优缺点对比:

composition的弊端:需要自己对包含类型的方法进行再次封装,代码比较冗余.

inheritance的弊端: 如果父类的特性与子类并不是很契合的时候,子类继承父类很容易造成误解,因为实际父类开放的某些方法并不适合子类.

 

如何取舍?

如果子类和父类的特性非常契合的时候,我们可以使用inheritance

如果子类只是有部分特性与父类相同时,我们尽量应该使用composition

 

讲得很好的一个链接:https://blog.csdn.net/iteye_12150/article/details/82539023

posted @ 2022-01-26 11:42  xiaoyongyong  阅读(60)  评论(0)    收藏  举报