サブクラス【subclass】子クラス

別名  :child class/派生クラス/derived class/継承クラス/inherited class

サブクラスとは?

オブジェクト指向プログラミングにおいて、あるクラスの定義を引き継いで新しく作成されたクラスのこと。元のクラスの属性や機能を受け継ぎつつ、独自の要素を追加したり一部の機能を変更したりして定義される。
サブクラスのイメージ画像

もとになるクラスは「スーパークラス」(superclass)、「親クラス」(parent class)、「基底クラス」(base class)などと呼ばれる。スーパークラスからサブクラスを作成することを「継承」(inheritance)と表現する。サブクラスはスーパークラスの性質を網羅するため、定義済みの記述を再利用できる。

スーパークラスメソッドと同名のメソッドをサブクラス側で再定義することができ、新しい機能を呼び出すようにすることができる。これを「オーバーライド」(override)と呼び、外見上の呼び出し方は同じでありながら実態の挙動を切り替える「多態性」(ポリモーフィズム)を実現することができる。

階層構造を形成することも可能であり、あるサブクラスを元に、孫にあたるサブクラスを定義することができる。標準のクラス群を木構造的に何段階も派生させ、徐々に具体的な仕様を持たせていく設計が用いられる。木構造の根に近いクラスほど抽象的で構成要素が少なく、派生が進むほど機能が豊富で具体的な仕様となる。複数のスーパークラスから同時に継承を行う「多重継承」をサポートする言語もあるが、複雑化を避けるために一つのクラスからしか継承できない「単一継承」を採用する言語も多い。

オブジェクト指向という概念が提唱された初期から、この仕組みはプログラム再利用性を高める中核要素として位置づけられてきた。大規模な開発においてソースコードの重複を排除し、仕様変更時の修正箇所を限定するために広く活用されている。JavaやC++言語、Pythonなどの主要な開発言語で用意されている仕組みだが、近年は継承による依存関係の複雑化を避けるため、複数のオブジェクトを組み合わせる「コンポジション」(composition)などの手法を併用する設計も普及している。

他の辞典等による「サブクラス」の解説 (外部サイト)

資格試験などの「サブクラス」の出題履歴

▼ 基本情報技術者試験
令6修6 問35】 オブジェクト指向の考え方に基づくとき,一般に “自動車” のサブクラスといえるものはどれか。
令5修7 問35】 オブジェクト指向における基底クラスと派生クラスの関係にあるものはどれか。
令4修7 問47】 オブジェクト指向における基底クラスと派生クラスの関係にあるものはどれか。
令3修6 問45】 オブジェクト指向の考え方に基づくとき,一般に “自動車” のサブクラスといえるものはどれか。
平29修7 問47】 オブジェクト指向の考え方に基づくとき,一般に “自動車” のサブクラスといえるものはどれか。
平28修12 問47】 オブジェクト指向における基底クラスと派生クラスの関係にあるものはどれか。
平27修7 問48】 オブジェクト指向における基底クラスと派生クラスの関係にあるものはどれか。
平27春 問48】 オブジェクト指向の考え方に基づくとき,一般に “自動車” のサブクラスといえるものはどれか。
平25修7 問49】 オブジェクト指向の考え方に基づくとき,一般に “自動車” のサブクラスといえるものはどれか。
平24修6 問49】 オブジェクト指向における基底クラスと派生クラスの関係にあるものはどれか。
平24修1 問48】 オブジェクト指向における,開かれた(ホワイトボックス型)再利用とは,基底クラスに対して,サブクラスを作ることによって,基底クラスのデータや機能を再利用することである。
平23修7 問48】 オブジェクト指向の考え方に基づくとき,一般に “自動車” のサブクラスといえるものはどれか。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。