访问子类中超类的私有字段


package com.company;

import java.util.Scanner;
class Person{
private String name;
String address;

public Person() {

this.name = name;
this.address = address;
}
public Person(String name, String address) {

this.name = name;
this.address = address;
}
class Student extends Person{
String program;
int year;
double fee;
//public Student(){super();};

public Student(String program, int year, double fee){
super.Person(name,address); <----Error is here
this.program = program;
this.fee = fee;
this.year = year;
}

这让我误以为这个名字是私人的。我尝试过添加和删除默认构造函数,但没有任何帮助我试过和建设者一起玩,但没有任何帮助。

您的Student类不应该在Person类中定义。name没有在您尝试访问它的Student中定义,因此它尝试访问超类的name属性,该属性是私有的,不在Student的范围内。

您应该在Person之外定义Student,并将nameaddress参数添加到其构造函数中。

最新更新