前回はクラスとオブジェクト指向の基礎として、フィールドとメソッドをまとめる方法を学びました。 今回は、オブジェクト指向の重要な考え方のひとつである「継承」について解説します。 継承を使うことで、似たクラスを効率よく整理し、コードの重複を減らすことができます。
継承の基本
前回作った Person クラスのように、似た特徴を持つクラスを複数作りたい場合があります。たとえば「学生」は、名前や年齢を持つという点では「人」と共通していますが、通っている学校など固有の情報も持っています。
こうした「共通部分」と「固有部分」を整理する仕組みが「継承」です。継承を使うと、すでにあるクラス(親クラス)の機能を引き継いだ新しいクラス(子クラス)を作ることができます。
public class 子クラス名 extends 親クラス名 {
// 子クラス独自のフィールドやメソッド
}
extends というキーワードを使うことで、親クラスのフィールドやメソッドを子クラスでそのまま使えるようになります。
サンプルコード(継承)
フォルダ作成
「Java02」フォルダを作成します

ファイル作成
「Java02」フォルダに Person.java、Student.java、InheritanceTest.java という名前でファイルを作成します

コード入力
Person.java に以下のコードを入力します。
public class Person {
String name;
int age;
void selfIntroduce() {
System.out.println("私の名前は" + name + "です。年齢は" + age + "歳です。");
}
}

Student.java に以下のコードを入力します。
public class Student extends Person {
String school;
void study() {
System.out.println(name + "は" + school + "で勉強しています。");
}
}

InheritanceTest.java に以下のコードを入力します。
public class InheritanceTest {
public static void main(String[] args) {
Student student = new Student();
student.name = "ぱんまる";
student.age = 20;
student.school = "パンマル大学";
student.selfIntroduce();
student.study();
}
}

コンパイル
javac Person.java Student.java InheritanceTest.java

実行
java InheritanceTest
実行結果は次のようになります。
私の名前はぱんまるです。年齢は20歳です。
ぱんまるはパンマル大学で勉強しています。

コードの解説
Student クラスは extends Person とすることで、Person クラスが持つ name、age、selfIntroduce をそのまま引き継いでいます。InheritanceTest.java の中で student.selfIntroduce(); を呼び出していますが、このメソッドは Student クラスの中に書かれていないにもかかわらず、問題なく実行できています。これは親クラスである Person から引き継いだメソッドだからです。
一方、school フィールドや study メソッドは Student クラス独自のものです。Person クラスにはこれらは存在しないため、Person のインスタンスから study() を呼び出すことはできません。
このように、共通する部分を親クラスにまとめておき、それぞれのクラスに固有の部分だけを子クラスに追加することで、同じようなコードを何度も書く必要がなくなります。たとえば「会社員」や「先生」といった別のクラスを作る場合も、Person を継承することで name や age、selfIntroduce を再利用できます。
まとめ
継承を使うことで、共通するフィールドやメソッドを親クラスにまとめ、固有の部分だけを子クラスに追加することができます。extends というキーワードひとつで、親クラスの機能をそのまま引き継げる点が大きなメリットです。クラスが増えてきたときに、共通点を整理して継承関係を作っておくと、コードの管理がしやすくなります。次回は、継承を活用してさらに柔軟な動作を実現する「ポリモーフィズム」について解説していきます。
2026/06/17(水) ぱんまる


コメント