A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马华 中级黑马   /  2013-4-30 11:00  /  1558 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马华 于 2013-5-1 07:23 编辑

什么时候用继承,什么时候用聚合?求指教啊,总搞不懂

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

6 个回复

倒序浏览
继承:a是b中的一种,比如猫是动物中的一种,猫就继承动物
而聚合,或者聚集,或者组合(毕老师讲过的,叫法不一样,但都是一回事):球员是球队中的一员,心脏、手都是人体的一部分,就用聚集,不能说心脏和手是人的一种啊!

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
我觉得陈国斌 说的很好。我再补充一点我自己的理解和注意

继承 extends
       注意:千万不要为了获取其他类的功能,简化代码而继承。
                必须是类与类之间有所属关系才可以继承,所属关系 is a。
    1,概念:继承是指一个对象直接使用另一对象的属性和方法。
    2,好处:
             1),提供了代码的复用性。
             2),让类与类之间产生了关系。有了这个关系,才有了多态的特性。
       聚集关系:has a 按照事物之间的紧密程度进行了单独划分。
       聚合:球员和球队的关系。球队中少一个球员没事。
       组合:手是人身体的一部分。人要是没了手,就有事了。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
当类与类之间存在着所属关系时,才具备了继承的前提。
判断所属关系,可能简单的看,如果继承后,被继承的类的功能,都可以被该子类所具备,那么继承成立,如果不是,不可以继承。
聚合是关联关系的一种特例,他体现的是整体与部分 拥有的关系,即has-a的关系,此时整体与部分之间是可以分离的,他们可以具有各自的生命周期,
部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU,公司与员工的关系

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
继承是父类和子类的关系包括从子类到父类的抽象过程从父类到子类的扩展过程
代码如下
public class Me extends ZhouJieLun
{
public static void main(String[] args){new Me().singing() ”}
}
聚合,当A创建的时候,B不一定创建;当A消亡时,B不一定消亡。
class A{
   private  B;
}
class B{
....
}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马