我對Java相當新,所以我試圖實現一個例子,並使用抽象類 但我缺乏面向對象的知識使我想知道爲什麼我不能使用抽象類中的私有變量「具體」類擴展它。java:抽象類和它的變量
這裏是我的代碼:
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
。
而不是記錄什麼'c'意味着評論,爲什麼不首先命名您的變量'係數'?爲什麼這個變量在基類中定義,因爲它根本沒有使用它? –
(1)對不起,我忘了重命名它; (2)它在子類中用於計算解 – epsilonhalbe
如果它只用於子類中,則在子類中聲明它。 –