黑马程序员技术交流社区

标题: 继承与组合的区别 [打印本页]

作者: 一个疯子    时间: 2016-2-19 16:40
标题: 继承与组合的区别
继承:子类与父类的关系(子类 is a 父类),子类是一种特殊的父类
应用场合:A类拥有B类的全部属性和方法

组合:一个类中拥有另一种类的对象(它们之间是一种关系)
应用场合:A类中拥有B类的实例作为属性

继承
优点:子类可以重写父类方法,方便的对父类进行扩展
缺点:1.父类的内部细节对子类是可见的
          2.子类从父类继承的方法和属性在编译时就已经确定,无法在运行时改变从父类继承的属性和方法
          3.如果父类的方法做了修改的话,则子类的方法必须做出修改。所以父类和子类有相当高的耦合性

组合
优点:1.当前对象只能通过所包含的那个对象去引用其方法,被包含的对象内部方法和属性对当前对象是不可见的
         2.当前对象和所包含对象是一种低耦合关系,被包含的对象被修改时,当前对象不必做出修改
         3.当前对象可以在动态运行时绑定对象,通过set方法给其赋值





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2