サブクラス【subclass】子クラス
サブクラスとは?

もとになるクラスは「スーパークラス」(superclass)、「親クラス」(parent class)、「基底クラス」(base class)などと呼ばれる。スーパークラスからサブクラスを作成することを「継承」(inheritance)と表現する。サブクラスはスーパークラスの性質を網羅するため、定義済みの記述を再利用できる。
スーパークラスのメソッドと同名のメソッドをサブクラス側で再定義することができ、新しい機能を呼び出すようにすることができる。これを「オーバーライド」(override)と呼び、外見上の呼び出し方は同じでありながら実態の挙動を切り替える「多態性」(ポリモーフィズム)を実現することができる。
階層構造を形成することも可能であり、あるサブクラスを元に、孫にあたるサブクラスを定義することができる。標準のクラス群を木構造的に何段階も派生させ、徐々に具体的な仕様を持たせていく設計が用いられる。木構造の根に近いクラスほど抽象的で構成要素が少なく、派生が進むほど機能が豊富で具体的な仕様となる。複数のスーパークラスから同時に継承を行う「多重継承」をサポートする言語もあるが、複雑化を避けるために一つのクラスからしか継承できない「単一継承」を採用する言語も多い。
オブジェクト指向という概念が提唱された初期から、この仕組みはプログラムの再利用性を高める中核要素として位置づけられてきた。大規模な開発においてソースコードの重複を排除し、仕様変更時の修正箇所を限定するために広く活用されている。JavaやC++言語、Pythonなどの主要な開発言語で用意されている仕組みだが、近年は継承による依存関係の複雑化を避けるため、複数のオブジェクトを組み合わせる「コンポジション」(composition)などの手法を併用する設計も普及している。
関連用語
他の辞典等による「サブクラス」の解説 (外部サイト)
- ウィキペディア「サブクラス」
- JavaA2Z「サブクラス」
- Programming Place Plus 用語集「サブクラス」
- Techopedia (英語)「Derived Class」
- PC Magazine (英語)「subclass」