サブクラス (計算けいさん科学かがく)

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

オブジェクト指向しこうプログラミングにおいてサブクラス (えい: subclass) とは、上位じょうい階層かいそう位置いちするクラススーパークラス)のいくつかのプロパティ(特性とくせい)を継承けいしょうする下位かいクラスのことである。

プログラマは普通ふつう、そのクラスをスーパークラスの「一種いっしゅ」であるものとして、たとえば「マンクスねこ一種いっしゅである」または「正方形せいほうけい長方形ちょうほうけい一種いっしゅである」などとして、サブクラスのことをかんがえる。

  • ねこにはえており、よんほんあし尻尾しっぽがある
    • マンクスねこ尻尾しっぽたないが、上記じょうきにあるほかすべての特徴とくちょうっている
  • 長方形ちょうほうけいながさがwhよっつのあたりつ。
    • 正方形せいほうけい長方形ちょうほうけい特徴とくちょうすべてをち、くわえて w = h である

このように、サブクラスはスーパークラスのより具体ぐたいてき種類しゅるいとなる。サブクラスは、たとえすうしゅねこ尻尾しっぽたなくても、ねこ状態じょうたいはすべてのねこについて一般いっぱんてきてはまることにかんしての事実じじつとなる。またすべての長方形ちょうほうけいよっつのあたりつが、正方形せいほうけいはすべてのあたりながさが同一どういつであるというよりかぎられた特徴とくちょうつ。

サブクラス-スーパークラスあいだ関係かんけいを、クラス-インスタンスあいだ関係かんけい混同こんどうしないこと。「ねこのインスタンス」は「ある特定とくていねこ」の実体じったい参照さんしょうする。ここでべているマンクスねこ依然いぜんとしてクラス(設計せっけい)である。つまり、マンクスねこおおくのインスタンスが存在そんざいしうる。もし特定とくていねこねこクラスのインスタンス)が偶然ぐうぜんきつねによっていちぎられた尻尾しっぽっていたとしても、ねこクラスはわらない。わるのはその特定とくていねこだけである。

サブクラスとスーパークラスはしばしば、C++開発かいはつしゃビャーネ・ストロヴストルップによってつくられた造語ぞうごとして、それぞれ派生はせい (derived) クラス、基底きてい (base) クラスとばれる。かれ伝統でんとうてき命名めいめいほうよりもより直感ちょっかんでこれらの造語ぞうごいだした[1]

語源ごげん[編集へんしゅう]

サブクラスは集合しゅうごうろんでいうところの、部分ぶぶん集合しゅうごう (subset) を語源ごげんつ。

脚注きゃくちゅう[編集へんしゅう]

  1. ^ Stroustrup, Bjarne. The Design and Evolution of C++. Addison-Wesley. Reading, Mass. 1994. ISBN 0-201-54330-3. Page 49

関連かんれん項目こうもく[編集へんしゅう]