Javaのsuperキーワードの使用方法
Java の super キーワードは、スーパークラスのコンストラクタ、メンバー変数、メンバーメソッドを、サブクラスから呼び出すために使用されます。
- 親クラスのコンストラクタを呼び出す:
- サブクラスのコンストラクタ内で super キーワードを用いることで、親クラスのコンストラクタを呼び出すことができる。
- superキーワードは子クラスのコンストラクタの1行目に記述する必要があり、一度しか呼び出すことができません。
- スーパーキーワードを使用して親クラスのコンストラクタを呼び出すときは、引数を渡すことも渡さないこともできます。
- 親クラスのメンバー変数とメンバーメソッドを呼び出します
- サブクラスでsuperキーワードを使うと、親クラスのメンバー変数やメンバーメソッドにアクセスできる。
- スーパークラスのメンバ変数をスーパークラスのメンバ関数から呼び出すときは、子クラスでスーパークラスのメンバ変数に代入したり利用したりできます。
- 親クラスのメンバメソッドは、子クラス内でもスーパークラスのメソッドを呼び出すことで使用できます。
サンプルコードは次のとおりです。
class Parent {
String name;
Parent(String name) {
this.name = name;
}
void printName() {
System.out.println("Parent name: " + name);
}
}
class Child extends Parent {
String name;
Child(String parentName, String childName) {
super(parentName); // 调用父类的构造方法
this.name = childName;
}
void printName() {
super.printName(); // 调用父类的成员方法
System.out.println("Child name: " + name);
}
void printParentName() {
System.out.println("Parent name: " + super.name); // 访问父类的成员变量
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child("Parent", "Child");
child.printName(); // 调用子类的方法
child.printParentName(); // 调用子类的方法
}
}
子のクラスChildは親クラスParentを継承しており、Childのコンストラクタでは親クラスのコンストラクタをsuperを使用して呼び出しています。また、Childクラスのメソッドでは親クラスのメンバメソッドをsuperを使用して呼び出し、親クラスのメンバ変数にアクセスしています。Mainクラスで、Childクラスのオブジェクトを作成してメソッドを呼び出しています。実行結果は次のとおりです。
Parent name: Parent
Child name: Child
Parent name: Parent