ObjectSquare [1999 年 2 月号]

[Happy Squeaking!!]


1.継承

1.1 分類の階層化


個々のインスタンスの共通性に着目すると、それを分類する「もの」としてクラスを考えることができました。例えば「ポチ」や「ラッシー」は「犬」クラスに属し、「タマ」や「ミケ」は「猫」クラスに属するというわけです。
しかしこうした分類は、それを行う人の観点によってその粒度が様々に異なってきます。「ポチ」や「タマ」を見たときに、「哺乳類」クラスに属するとおおざっぱに捉える人もいるでしょうし、ペットブリーダーであれば、「ポチ」を見て「柴犬」クラスに属するとより細かく考えるかもしれません。
このように、場合によって様々な分類が存在するということになると、やはりそれを管理するための枠組みが必要になります。「おおざっぱな分類」と「細かな分類」を、通常私たちは「上位概念に基づく分類」、「下位概念に基づく分類」という形で階層化させることで整理します。

分類の階層化

ベン図ふうに書くと以下のようになります。この場合は外側にいくほど上位の概念上の分類になります。

分類の階層化(ベン図ふう)

下位にいくほど分類の条件が細かくなり、そこに分類される個々のインスタンスの集合は特定されたものになります。
こうした分類概念のの上下の関係は、オブジェクト指向の世界では、「
特化(specialization)」や、「汎化(generalization)」といった言葉で表されます。
例として、「猫」は「哺乳類」を「
特化」したものとして考えることができます。
一般に上位と下位の分類では、下位は上位の「
(特殊化された)一種である」(a kind of )という関係がなりたちます。
これは、下位の分類からの見方ですが、反対に「哺乳類」は「猫」をさらに一般的にとらえたものすることもできます。この場合には、「哺乳類」は「猫」を「
汎化」したものであると呼ばれます。

汎化と特化

分類の上下間の関係は、「分類の条件となる情報」の多さによって決まります。例えば「ポチ」が「柴犬」として分類されるためには、「哺乳類」(胎生、恒温動物、etc)としての条件を満たし、「犬」(ワンとなく、etc)としての条件を満たし、かつ「柴犬」(小型の日本産の犬、etc)としての条件を満たしている必要があります。
つまり下位の分類は、上位の分類に対しさらに特化した分類を指定するため、より多くの条件の情報を持っていることになります。


© 1999-2001 OGIS-RI Co., Ltd.

Index

Next