在知识表示、面向对象程式设计与面向对象设计的领域里,is-a(英语subsumption,包含架构)指的是类的父子继承关係,例如类D是另一个类B的子类(类B是类D的父类)。
基本介绍
- 中文名Is-a
- 外文名subsumption
- 实质指的是类的父子继承关係
- 例子类D是另一个类B的子类
换句话说,通常"Dis aB"(B把D包含在内,或是D被包含在B内)指的是,概念体D物是概念体B物的特殊化,而概念体B物是概念体D物的一般化。举例来说,水果是苹果、橘子、芒果与其他水果的一般化。
在面向对象程式设计里,is-a类关係是在继承概念的背景之下所形成的。有一说法是,对于所有水果来说,苹果继承(英语inherit)所有的属性,就像是肉质多的水果包住种子般。
is-a与has-a两者是不同的对比,是以整体-附属阶层关係所组成的。也可以是instance-of的对比请参考型态与个例的区别。
在真实世界里设计一个模型时(例如电脑程式),尤其是物件与它的下一层从属物件,在has-a与is-a两者的关係上容易产生概念上的错误。