super Javaキーワードの手引き

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]から入手できます。