1前書き

このクイックチュートリアルでは、

super

Javaキーワードを見てみましょう。

  • 簡単に言うと、

    super

    キーワードを使用して親クラスにアクセスできます。 **

言語のコアキーワードの用途を調べましょう。


2コンストラクタを持つ

super

キーワード


  • super()

    を使って、親のデフォルトコンストラクタを呼び出すことができます** 。それはコンストラクターの最初のステートメントでなければなりません。

この例では、

String

引数と共に

__super(message)

__を使用します。

public class SuperSub extends SuperBase {

    public SuperSub(String message) {
        super(message);
    }
}

子クラスのインスタンスを作成して、その背後で何が起こっているのかを確認しましょう。

SuperSub child = new SuperSub("message from the child class");


new

キーワードは

SuperSub

のコンストラクターを呼び出します。これは最初に親コンストラクターを呼び出し、それに

String

引数を渡します。


3親クラス変数へのアクセス


message

インスタンス変数を使用して親クラスを作成しましょう。

public class SuperBase {
    String message = "super class";
}

それでは、同じ名前の変数を使って子クラスを作成します。

public class SuperSub extends SuperBase {

    String message = "child class";

    public void getParentMessage() {
        System.out.println(super.message);
    }
}


super

キーワードを使用して、子クラスから親変数にアクセスできます。


4メソッドをオーバーライドする

super

キーワード

先に進む前に、リンクを確認することをお勧めします:/java-method-overload-override[メソッドの上書き]ガイド。

親クラスにインスタンスメソッドを追加しましょう。

public class SuperBase {

    String message = "super class";

    public void printMessage() {
        System.out.println(message);
    }
}

そして、子クラスの

printMessage()

メソッドをオーバーライドします。

public class SuperSub extends SuperBase {

    String message = "child class";

    public SuperSub() {
        super.printMessage();
        printMessage();
    }

    public void printMessage() {
        System.out.println(message);
    }
}

  • 子クラスからオーバーライドされたメソッドにアクセスするために

    super

    を使うことができます** 。コンストラクター内の

    super.printMessage()

    は、

    SuperBase

    から親メソッドを呼び出します。


5結論

この記事では、

super

キーワードについて説明しました。

いつものように、完全なコードはhttps://github.com/eugenp/tutorials/tree/master/core-java-lang-oop[over on Github]から入手できます。