スーパークラス【superclass】親クラス

別名  :parent class/基底クラス/base class/基本クラス/ベースクラス

概要

スーパークラスとは、オブジェクト指向プログラミングにおいて、継承によって新たなクラスを派生させる際に、その元となるクラスのこと。継承によって派生した側のクラスは「サブクラス」(subclass)、「派生クラス」(derived class)、「子クラス」(child class)などと呼ばれる。
スーパークラスのイメージ画像

サブクラスはスーパークラスが持つプロパティ(属性)とメソッド(操作)をそのまま引き継ぐ。開発者はスーパークラスにない独自の要素だけを追加定義すればよく、共通の仕様を繰り返し記述する手間が省ける。また、スーパークラスで定義済みのメソッドサブクラス側で同じ名前で再定義し、処理内容を上書きする「オーバーライド」(override)も可能である。

多くの言語では、サブクラスをさらにスーパークラスとして別のサブクラスを派生させる「多段継承」が可能である。こうして形成される継承関係は木構造をなし、根本に近いクラスほど抽象的・汎用的な仕様を持ち、派生を重ねるにつれて機能が追加され、より具体的・個別的な仕様へと変化していく。例えば、「動物」クラスを頂点に「哺乳類」→「犬」→「秋田犬」へと派生していくイメージである。

継承inheritance)は、検証済みのコードを再利用することで開発効率を高め、バグの混入を防ぐ目的で導入された仕組みである。共通する性質をスーパークラスにまとめておくことで、プログラム全体の変更や拡張が容易になる。一方、スーパークラスの仕様を変更するとすべてのサブクラスに影響が及ぶため、継承階層が深く複雑になりすぎると保守が難しくなる面もある。

言語ごとの仕様として、複数のスーパークラスを同時に持てる「多重継承」を認める言語と、単一のスーパークラスからしか継承できない「単一継承」に限定する言語がある。C++言語やPython多重継承をサポートするが、同名メソッドの解決順序など複雑な問題が生じる場合があり、言語ごとに異なる仕組みで対処している。JavaやC#は単一継承のみを採用し、すべてのクラスの最上位に共通の基底クラス(Javaでは「Object」、.NETでは「System.Object」)を設けることで、継承ツリー全体に共通の振る舞いを持たせる構造となっている。

(2026.6.9更新)
 

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

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

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