?? 8017c1791a75001d1dddb6604daa6ad2
字號:
//【例4-14】 方法覆蓋的使用和父類中被覆蓋方法的調用。
//程序清單4-14: MethodOverrideDemo.java
package e4_14;
public class MethodOverrideDemo {
public static void main(String args[]) {
// 創建一元二次方程實例:5x^2+6x+1 = 0;
TwoVariableEquation twe = new TwoVariableEquation(5, 6, 1);
// 求解兩實根x1,x2
System.out.println("twe.getX1() = " + twe.getX1());
System.out.println("twe.getX2() = " + twe.getX2());
}
}
// 一元一次方程類OneVariableEquation
class OneVariableEquation {
double a;
double b;
public OneVariableEquation(double a, double b) {
this.a = a;
this.b = b;
}
public void setAB(double a, double b) {
this.a = a;
this.b = b;
}
double getX1() {
return -b / a;
}
}
// 一元二次方程類TwoVariableEquation繼承類OneVariableEquation
class TwoVariableEquation extends OneVariableEquation {
double c;
public TwoVariableEquation(double a, double b, double c) {
// 調用父類的構造方法public OneVariableEquation(double a, double b)
super(a, b);
this.c = c;
}
public void setABC(double a, double b, double c) {
// 調用繼承自父類的方法public void setAB(double a, double b)
setAB(a, b);
this.c = c;
}
// 子類中覆蓋方法可以擴大而不能縮小父類中被覆蓋方法的訪問控制權限,
// 此處“getX1()”可為public、protected和默認,而不能為private
public double getX1() {// 覆蓋父類方法
// 用"super.<方法名>([實參表])"調用被子類覆蓋的方法getX1()
return super.getX1() / 2 + Math.sqrt(Math.pow(b, 2) - 4 * a * c);
}
public double getX2() {
return super.getX1() / 2 - Math.sqrt(Math.pow(b, 2) - 4 * a * c);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -