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

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

概要

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

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

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

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

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

(2026.6.2更新)
 

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

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

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