Java の super
Siddharth Swami
2023年10月12日
Java には、親クラスにいくらか関連する定義済みのキーワード super
があります。このチュートリアルでは、super()
関数について詳しく説明します。
Java では、super
キーワードは親クラスオブジェクトの参照変数として機能します。親のクラスメソッドと変数を呼び出すために使用できます。
例えば
class Teacher { // Parent class
int grade = 90;
}
class Students extends Teacher { // subclass
Students() {
System.out.println("Grade " + super.grade);
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
出力:
Grade 90
上記の例では、super
キーワードを使用して、サブクラス Students
のコンストラクターから親クラス Teacher
から変数 grade
にアクセスしました。
親のクラスコンストラクターを呼び出す super()
関数もあります。この関数は、親クラスのコンストラクターを呼び出すためにのみ使用されます。パラメトリックコンストラクターとノンパラメトリックコンストラクターはどちらも、super()
関数を使用して呼び出すことができます。super()
関数の使用中にコンストラクターがスーパークラスコンストラクターを明示的に呼び出さない場合、スーパークラスの引数のないコンストラクターは Java コンパイラー自体によって呼び出されます。
以下のコードを参照してください。
class Teacher { // Parent class
Teacher() // constructor
{
System.out.println("Teacher class Constructor");
}
}
class Students extends Teacher { // subclass
Students() {
super();
System.out.println("Students class Constructor");
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
出力:
Teacher class Constructor
Students class Constructor
上記のコードで、メッセージを出力する親クラス Teacher
と親クラスコンストラクターを作成しました。次に、サブクラス Students
が Teacher
から拡張されます。このコンストラクター Students()
は、親クラスコンストラクターを呼び出すための super()
関数で構成されています。次に、プログラムを実行するためのサブクラスを呼び出すメインクラスがあります。super()
関数は、親クラスコンストラクターを呼び出して、親クラスから、次にサブクラスからメッセージを出力しました。