Is-a

Is-a

在知識表示、面向對象程序設計與面向對象設計的領域裡,is-a(英語:subsumption,包含架構)指的是類的父子繼承關係,例如類D是另一個類B的子類(類B是類D的父類)。

基本介紹


換句話說,通常"Dis aB"(B把D包含在內,或是D被包含在B內)指的是,概念體D物是概念體B物的特殊化,而概念體B物是概念體D物的一般化。舉例來說,水果是蘋果、橘子、芒果與其他水果的一般化。
面向對象程序設計里,is-a類關係是在繼承概念的背景之下所形成的。有一說法是,對於所有水果來說,蘋果繼承(英語:inherit)所有的屬性,就像是肉質多的水果包住種子般。
is-a與has-a兩者是不同的對比,是以整體-附屬階層關係所組成的。也可以是instance-of的對比:請參考型態與個例的區別。
在真實世界里設計一個模型時(例如計算機程序),尤其是物件與它的下一層從屬物件,在has-a與is-a兩者的關係上容易產生概念上的錯誤。