打印从 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
我正在扩展 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