基底クラス(スーパークラス)と派生クラス(サブクラス)

Javaの継承ポリモーフィズムに関する理解の第一歩として、「基底クラス(スーパークラス)」と「派生クラス(サブクラス)」の関係について詳しく説明します。


基底クラス(スーパークラス)とは

基底クラスとは、他のクラスに共通する基本的な機能や特性を定義したクラスのことです。Javaにおいては、extendsキーワードを使って他のクラスから継承可能なクラスを定義します。

java
public class Animal { public void speak() { System.out.println("動物が鳴いています"); } }

上記のAnimalクラスは基底クラスです。このクラスを継承すれば、共通の動作(speakメソッドなど)を再利用することができます。


派生クラス(サブクラス)とは

派生クラスとは、既存のクラス(基底クラス)を継承して、新たな機能を追加したクラスのことです。Javaでは以下のように記述します。

java
public class Dog extends Animal { public void bark() { System.out.println("ワンワン"); } // メソッドのオーバーライド(ポリモーフィズム) @Override public void speak() { System.out.println("犬が吠えています"); } }

ここでDogAnimalの派生クラスです。Animalpublicメソッドを継承しつつ、独自のbarkメソッドやspeakメソッドの**オーバーライド(再定義)**が可能です。


継承の特徴

  • DogAnimalのすべてのpublicおよびprotectedメンバーにアクセス可能。

  • Javaでは単一継承のみ許可されています。つまり、1つのクラスからしか継承できません。

  • コンストラクタは継承されませんが、super()を使って基底クラスのコンストラクタを呼び出すことができます。


ポリモーフィズムとの関係

継承関係にあるクラスでは、**ポリモーフィズム(多態性)**が利用可能です。例えば次のように記述できます。

java
Animal a = new Dog(); a.speak(); // 「犬が吠えています」が出力される

このように、スーパークラス型の変数でサブクラスのインスタンスを扱い、オーバーライドされたメソッドを実行するのがポリモーフィズムの典型例です。


まとめ

用語 説明
スーパークラス(基底クラス) 共通の振る舞いや属性を定義する上位クラス。例:Animal
サブクラス(派生クラス) スーパークラスを継承し、独自の振る舞いを追加・変更できるクラス。例:Dog
継承 サブクラスがスーパークラスの性質(メソッドやフィールド)を引き継ぐ仕組み
ポリモーフィズム スーパークラス型でサブクラスのインスタンスを扱い、動的にメソッドを実行できる仕組み

生成日:2025/05/03