サブクラス (計算機科学)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
オブジェクト指向プログラミングにおいて サブクラスとはそのスーパークラスのいくつかのプロパティを継承するクラスのことである。
プログラマは普通、そのクラスをスーパークラスの「一種」であるものとして、例えば「マンクスは猫の一種である」または「正方形は長方形の一種である」などとして、サブクラスのことを考える。
- 猫には毛が生えており、四本の脚と尻尾がある
- マンクス猫は尻尾を持たないが、上記にあるほか全ての特徴を持っている
- 長方形は長さがwとhの四つの辺を持つ。
- 正方形は長方形の特徴すべてを持ち、加えて w = h である
このように、サブクラスはスーパークラスのより具体的な種類となる。サブクラスは、たとえ数種の猫は尻尾を持たなくても、猫の状態はすべての猫について一般的に当てはまることに関しての事実となる。またすべての長方形は四つの辺を持つが、正方形はすべての辺の長さが同一であるというより限られた特徴を持つ。
サブクラス-スーパークラス間の関係がクラス-インスタンス間との関係とに混同しないこと。「猫のインスタンス」は「ある特定の猫」を参照する。ここで述べているマンクス猫はいまだにクラスである。つまり、マンクス猫の多くのインスタンスが存在する。特定の猫(猫クラスのインスタンス)が狐によって尻尾を噛みつかれたならば、猫クラスは変わらないだろう。まさにその特定の猫が変わるだけである。
サブクラスとスーパークラスはしばしば、C++開発者ビャーネ・ストロヴストルップによって作られた造語として、それぞれ派生(derived)クラス、基底(base)クラスと呼ばれる。彼は伝統的命名法よりもより直感でこれらの造語を見いだした。[1]
[編集] 脚注
- ^ Stroustrup, Bjarne. The Design and Evolution of C++. Addison-Wesley. Reading, Mass. 1994. ISBN 0-201-54330-3. Page 49
[編集] 関連項目
オブジェクト指向プログラミングに関してのクラスの概念のより掘り下げた説明は、クラス (コンピュータ)を見よ。特に、そのページのサブクラスとスーパークラスを見よ。