Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1544059
  • 博文数量: 237
  • 博客积分: 5139
  • 博客等级: 大校
  • 技术积分: 2751
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 14:48
文章分类

全部博文(237)

文章存档

2016年(1)

2012年(4)

2011年(120)

2010年(36)

2009年(64)

2008年(12)

分类: C/C++

2009-06-12 13:36:29

use-a关系
  如果类A与类B是 use-a 关系,则A具有类型为B、B、const B、B*、const B*的一个成员,或者是可以轻易以上述对象之一返回一个B的函数。于是A可以使用B的程序和数据。
  
has-a关系
  has-a 类似于 use-a,不同之处在于,A负责构建和销毁B并在它的生存期使用它。
  
is-a关系
  如果类A和类B是 use-a 关系,则B必须是A的抽象。is-a的关系通常出现在公共派生的C中
  
实现关系
  如果类A与接口M是实现关系,则它实现了M所有的纯虚函数。接口实现是Symbian OS中唯一使用多重继承的地方,既一个类只能继承一个非M类,可以继承自多个M类,也可以同时继承一个非M类,多个M类。


is-a表示的是属于得关系。比如兔子属于一种动物(继承关系)。

has-a表示组合,包含关系。比如兔子包含有腿,头等组件;就不能说兔子腿是属于一种兔子(不能说是继承关系)


一、泛化:“is a”。
二、“is a”关系的概念:如果对象A与对象B具有“is a”关系的话,那么对象B的所有属性和服务也都是对象A的属性和服务。
例如:有两个对象:Person和Employee,Employee继承Person。则Employee“is a”Person,根据“is a”关系的定义,Person的属性也是Employee的属性。
三、祖先是子孙的泛化,反过来,子孙是祖先的特化。
阅读(2104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~