1. 序章

このクイックチュートリアルでは、スーパーJavaキーワードを見ていきます。

簡単に言うと、superキーワードを使用して親クラスにアクセスできます。 

言語のコアキーワードのアプリケーションを調べてみましょう。

2. コンストラクターを使用したsuperキーワード

super()を使用して、親のデフォルトコンストラクターを呼び出すことができます。 コンストラクターの最初のステートメントである必要があります。

この例では、 super(message)String引数とともに使用します。

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";

    // default constructor

    public SuperBase(String message) {
        this.message = message;
    }
}

次に、同じ名前の変数を使用して子クラスを作成します。

public class SuperSub extends SuperBase {

    String message = "child class";

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

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

4. superキーワードとメソッドのオーバーライド

先に進む前に、メソッドのオーバーライドガイドを確認することをお勧めします。

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

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キーワードについて説明しました。

いつものように、完全なコードはGithubから入手できます。