我对 java 还很陌生,所以我尝试实现一个示例并使用抽象类,但我缺乏 OO 知识让我想知道为什么我不能在扩展它的“具体”类中使用抽象类中的私有变量。
这是我的代码:
abstract class Equation{
private double[] c;//oefficient
public static int degree(double[] coeff) {
return coeff.length;
}
public abstract double[] solve();
}
class QuadraticEquation extends Equation{
public double[] solve() {
double[] solution;
double discriminant = c[1]*c[1]-4*c[0]*c[2];
if (discriminant < 0) {
solution = new double[] {Double.NaN,Double.NaN};
}
else {
solution = new double[] {(c[1]+Math.sqrt(discriminant))/(2*c[0])
,(c[1]-Math.sqrt(discriminant))/(2*c[0])};
}
return solution;
}
}
我得到的错误是
c has private access in Equation
我可以通过创建c
一个public
变量来解决这个问题,但我想有更好的方法来做到这一点。
底线:如何访问变量c
.