我想从超类MathProblem
访问两个私有变量,但我不知道如何访问它们。我知道私有事物不是继承的,但我需要这两个变量来访问它们并添加它们并返回值。
abstract public class MathProblem {
private int operand1;
private int operand2;
private int userAnswer;
public MathProblem() {
operand1 = RandomUtil.nextInt(99);
operand2 = RandomUtil.nextInt(99);
}
public int getOperand1() {
return operand1;
}
public void setOperand1(int operand1) {
this.operand1 = operand1;
}
public int getOperand2() {
return operand2;
}
public void setOperand2(int operand2) {
this.operand2 = operand2;
}
public int getUserAnswer() {
return userAnswer;
}
public void setUserAnswer(int userAnswer) {
this.userAnswer = userAnswer;
}
}
子类是这样的:
public class AdditionMathProblem extends MathProblem {
StringBuilder sb = new StringBuilder();
public AdditionMathProblem() {
super();
// can't access the private values.
}
@Override
public int getAnswer() {
int result = getOperand1() + getOperand2();
return result;
}
}
所以在课程AdditionMathProblem
中,我使用getOperand1() + getOperand2()
添加了两个值,但我需要这两个值字母才能访问它们。所以我的问题是:我有什么办法可以访问它们吗?
答案 0 :(得分:2)
使用protected
访问修饰符而不是private
。这将允许子类访问其基类的成员。
答案 1 :(得分:0)
您无法直接从其外部访问私有变量。如果您希望该变量可由其父级访问,那么您可以: