Subclassはスーパークラスのプライベートメンバーにアクセスできますか?


クラスプライベートのINST VARを状態にすると、コンパイル時のblunderが作成されます.
それにもかかわらず、プライベートVARを持つクラス、クラスの他のすべての参加者だけでなく、プライベートVARも継承され、サブクラスに対してアクセス可能なクラスにアクセスします.
ただし、コンパイル時にエラーが発生した場合は、オープンに到達できません.


class Person1{
   private String name1;
   public Person(String name1){
      this.name1 = name1;
   }
   public void displayPerson() {
      System.out.println("Person class data: ");
      System.out.println("Name of the person: "+this.name1);
   }
}
public class Student1 extends Person1 {
   public Student(String name1){
      super(name1);
   }
   public void displayStudentRecord() {
      System.out.println("Student class data: ");
      System.out.println("Name: "+super.name1);
   }
   public static void main(String[] args) {
      Student std = new Student1("Trump");
   }
}

コンパイル時エラー
Student1.java:17: error: name1 has private access in Person
System.out.println("Name: "+super.name1);
^
1 error
スーパークラスのプライベートインスタンスに到達するには、setter関数とgetter関数を使用し、サブクラスobjを使って呼び出します.


Read more