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的属性。
三、祖先是子孙的泛化,反过来,子孙是祖先的特化。
阅读(2156) | 评论(0) | 转发(0) |