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