javaで、サブクラスはどうやって親クラスのメンバーにアクセスするのか?
Javaでは、継承したクラスはsuperキーワードを使用して親クラスのメンバーにアクセスすることができます。以下に例を示します。
- 親クラスのメソッドを呼び出す:
public class Parent {
public void print() {
System.out.println("Parent class");
}
}
public class Child extends Parent {
public void printChild() {
super.print(); // 调用父类的print方法
System.out.println("Child class");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.printChild(); // 输出:Parent class Child class
}
}
- 祖先の属性へのアクセス
public class Parent {
protected int age;
public Parent(int age) {
this.age = age;
}
}
public class Child extends Parent {
public Child(int age) {
super(age); // 调用父类的构造方法
}
public void printAge() {
System.out.println("Age: " + super.age); // 访问父类的age属性
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child(10);
child.printAge(); // 输出:Age: 10
}
}
クラス内のSuperキーワードを使うと、祖先のメンバーを参照できます。ただし、参照対象のメンバーは、publicかProtectedなアクセス修飾子が必須です。祖先とクラスが同じパッケージ内にあっても同条件が適用されます。一方、メンバーにPrivateなアクセス修飾子が使用されている場合は、サブクラスからアクセスすることはできません。