Javaの継承とは?親クラスの機能を子クラスで引き継ぐ考え方

最終更新日

Schoo Java入門 初級【2026年版】第7回 継承とインターフェース

本記事は、Schooの「Java入門 初級【2026年版】」第7回「継承とインターフェース」を学ぶ前後に、Javaの継承の考え方を整理したい方向けのステップアップ学習記事です。

ただし、Schooを受講していない方でも、クラス、フィールド、コンストラクタ、メソッドの基本を学んだあとに読み進められる内容にしています。

Schoo コースページ:Java入門 初級【2026年版】

継承とは、あるクラスの機能を別のクラスで引き継いで使えるようにする仕組みです。Javaでは、親クラスをもとにして子クラスを作るときに extends を使います。

継承は親クラスの機能を子クラスで使う仕組み

たとえば、共通する情報や処理を Parent クラスに用意し、それを Child クラスで引き継ぐことができます。

public class Parent {
    private String familyName;

    public Parent(String familyName) {
        this.familyName = familyName;
    }

    public void showCommon() {
        System.out.println("苗字:" + familyName);
    }
}

Parent クラスには、苗字を表す familyName と、それを表示する showCommon メソッドがあります。

public class Child extends Parent {
    private String givenName;

    public Child(String familyName, String givenName) {
        super(familyName);
        this.givenName = givenName;
    }

    public void showChildOnly() {
        System.out.println("名前:" + givenName);
    }
}

Child extends Parent と書くことで、ChildParent を継承します。Child は親クラスの機能を使いながら、givenNameshowChildOnly のような独自の機能を追加できます。

図解:ChildはParentの機能を引き継いで使える
親クラス Parent
public class Parent {
  private String familyName;
  public void showCommon() {
    System.out.println(familyName);
  }
}
共通で使いたいフィールドやメソッドを持つクラスです。
extendsで
引き継ぐ
子クラス Child
public class Child
    extends Parent {
  private String givenName;
  public void showChildOnly() {
    System.out.println(givenName);
  }
}
親の機能を使いつつ、子クラス独自の機能も追加できます。
extends を使うと、子クラスは親クラスの機能を利用できるようになります。

子クラスは親クラスのメソッドを呼び出せる

継承すると、子クラスのオブジェクトから親クラスのメソッドを呼び出せます。

Child child = new Child("佐藤", "太郎");
child.showCommon();     // Parentのメソッド
child.showChildOnly();  // Childで追加したメソッド

showCommonParent に書かれたメソッドですが、Child のオブジェクトである child から呼び出せます。一方、showChildOnlyChild に追加したメソッドです。

図解:Childのオブジェクトから親のメソッドも呼び出せる
呼び出し側のコード
Child child = new Child(“佐藤”, “太郎”);
child.showCommon();    // Parentのメソッド
child.showChildOnly(); // Childのメソッド
親から引き継いだメソッド
showCommon()Parent に書かれたメソッドですが、Child のオブジェクトから呼び出せます。
子クラスで追加したメソッド
showChildOnly()Child に追加したメソッドです。親にはない、子クラス独自の処理です。
継承すると、子クラスは親の機能と自分で追加した機能の両方を使えます。

superは親クラス側のコンストラクタを呼び出す

子クラスのコンストラクタでは、親クラス側の初期化も必要になることがあります。そのときに使うのが super(...) です。

public Child(String familyName, String givenName) {
    super(familyName);
    this.givenName = givenName;
}

super(familyName); は、親クラス Parent のコンストラクタへ familyName を渡しています。そのあとで、子クラス自身のフィールドである givenName に値をセットしています。

図解:super(…) は親クラス側の初期化を呼び出す
Childのコンストラクタ
public Child(String familyName, String givenName) {
  super(familyName);    // Parent側の初期化
  this.givenName = givenName; // Child側の初期化
}
親クラスに渡す値
familyNamesuper(familyName) によって、親クラス Parent のコンストラクタへ渡されます。
子クラスで持つ値
givenNameChild 自身のフィールドにセットします。
super(...) は、親クラスのコンストラクタを呼び出す書き方です。

継承はコードをコピーする話ではない

継承を「親クラスのコードが子クラスにコピーされる」と考えると、少し誤解しやすくなります。実際には、子クラスが親クラスの機能を利用できる関係を作る、と考えるほうが自然です。

共通する機能は親クラスに置き、違いがある部分は子クラスに追加する。これが継承の基本的な使い方です。

確認問題

  1. Child extends Parent と書いた場合、ChildParent はどのような関係になりますか。
  2. Child のオブジェクトから、Parent に書かれた showCommon メソッドを呼び出せるのはなぜですか。
  3. super(familyName); は何を呼び出している書き方ですか。

演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。

あわせて読みたい関連記事

まとめ

Javaの継承は、親クラスの機能を子クラスで引き継いで使う仕組みです。extends で親子関係を作ると、子クラスは親クラスのメソッドを呼び出せます。また、子クラスには独自のフィールドやメソッドを追加できます。親クラス側のコンストラクタを呼び出すときは super(...) を使います。

シェアする