打印从 SuperClass 继承的字符串属性显示 Null

Printing String Attribute Inherited from SuperClass shows Null

我正在扩展 class 并在我的 subclass 构造函数中使用 super 关键字。

但是,当我尝试打印继承的属性字符串时。它returns空

public class Question implements IQuestion, Serializable {

private String question;

public Question(String question){
    this.question=question;
}

@Override
public String getQuestion(){
return question;

}

public class TrueFalseQuestion extends Question implements ITrueFalseQuestion{

String question;
boolean answer;

public TrueFalseQuestion(String question, boolean answer){
    super(question);
    this.answer=answer;  
}

@Override
public String getQuestion(){
return question+" True/False?";
}
@Override
public boolean checkAnswer(boolean answer){
    return this.answer==answer;
    
}
}

所以当我创建一个 TrueFalseQuestion 对象并调用它的 getQuestion() 方法时,

我得到输出:null True/False?

为什么不打印我在创建对象时传递的问题?我该如何纠正?

谢谢

这是父子访问修饰符的范围 classes.

在 class Question 中将 question 变量的范围设置为限制较少的范围。例如

protected String question;

并在子 class、TrueFalseQuestion 中完全删除变量定义,以便子将引用父变量。

String question; // <--- remove this