怎么区别"is-a"和"has-a" 我知道定义一个类的对象是is-a,那继承呢?是has-a吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 has-a :聚合关系is-a :继承关系 is-a是继承has-a是包含比如A类中有一个成员是B类的声明乱讲,呵呵 http://www.uml.org.cn/zjjs/200510281.htm he is a peoplehe has a head he is a peoplehe has a head he is a peoplehe has a head说得很经典 楼主写的有错误继承的关系是is-a而组合的关系是has-a is_a 用于继承 has_a 是组合 一个类中包含了其他类。 对于is-a和has-a的分析方法论也不是精确的。如果从设计模式的角度来看到,更推荐使用组合同而不是继承。当然如果是实现一个接口也是颇为人们所推崇的。呵呵, 一般我们认为继承可以分为两种基本的形式:实现继承和接口继承。实现继承的主要目标是代码重用,我们发现类B和类C存在同样的代码,因此我们设计了一个类 A,用于存放通用的代码,基于这种思路的继承称为实现继承。但接口继承不同,它是基于现实生活中的语义的,表现了IsA的关系。例如,我们认为存款帐户和结算帐户都是帐户的子类,这种继承我们称之为接口继承。注意,有些文章中一个类实现一个接口的行为定义为接口继承,这和这里的接口继承是不同的概念,为了区分两种概念,我们可以使用接口继承的另一种称呼-类型继承。继承的关键就在于如何灵活的运用两种继承方式。这里的接口的意思和Java或者C#中的interface有着不同。在此的接口表示的是一个类中所有公有的方法的签名。所以IsA关系是关于行为的。 HasA关系,也称为对象组合。实际上,HasA关系有两种。第一种,静态HasA关系。这在UML中叫做组合(composition),比如“汽车has-a引擎”。此种关系很像聚集,除了‘部分’的生命周期由‘整体’控制。这种控制可能是直接的或者传递的。即,‘整体’可能对创建或者销毁‘部分’具有直接的职责,或者它可能获得已经创建的部分,稍后传递给其它的假定对其有职责的整体。第二种,动态HasA关系。这在UML中叫做聚合(aggregation),比如“飞机场has-a飞机”。 我,男人我是一个男人,is-a我有一个女人。has-a he is a people?-----------------------英语咋学的嘛,谁 is a peaple 呀? 关于Java 对象生成XML 的一个问题 Java实现文件的读取并初始化给数组 JAVA里面有用到win32API吗? easy question 关于Socket的使用问题 oracle数据显示图片显示不出来问题 在学习java的swing中遇到了一个概念性问题 超级菜鸟问题,大家抢分呀。 关于留言板的JAVABAENS 手机APP程序抓包分析碰到问题! 怎样求期间有多少天? 有没有直接的方法~~~~在线等。。。。 JTable 连接数据库刷新问题~~~~~~急~~~~~~
is-a :继承关系
has-a是包含比如A类中有一个成员是B类的声明乱讲,呵呵
he has a head
he has a head
he has a head
说得很经典
而组合的关系是has-a
has_a 是组合 一个类中包含了其他类。
我有一个女人。has-a
-----------------------
英语咋学的嘛,谁 is a peaple 呀?