繼承(Inheritance)
繼承是指一個新的類別可沿用已經設計好的類別,讓新類別增加新的功能。藉由繼承,能使用舊類別的方法、屬性,依據不同類別的相似程度整理,使整個程式更加模組化。
**繼承的語法**
class 類別名稱 extends 父類別名稱{
類別的新變數
類別的新方法
}
package com.mycompany.testseven;
public class Shape {
protected double x,y;
public Shape(double x,double y){
this.x=x;
this.y=y;
}
public String toString(){
return "原點:("+x+", "+y+")";
}
}
package com.mycompany.testseven;
public class Circle extends Shape{
protected double r;
protected final double PI=3.14;
public Circle(double x,double y,double r){
super(x,y);
this.r=r;
}
public String toString(){
return super.toString()+", 半徑:"+r;
}
public double area(){
return (r*r*PI);
}
}
package com.mycompany.testseven;
public class testSeven {
public static void main(String[] args) {
Shape s=new Shape(1,2);
Circle ci=new Circle(4,3,10);
System.out.println("Circle"+ci.toString());
System.out.println("圓形面積:"+ci.area());
}
}
Shape為父類別(Parent Class),Circle為子類別(Child Class),子類別可以使用從父類別繼承的所有成員變數及方法。
繼承關係中的物件建構
x、y是點座標,從Shape類別繼承而來的成員變數,而r是半徑,為Circle類別自己建構的成員變數,子類別可以只初始化自己的成員變數,所以繼承來的成員變數會先呼叫父類別的建構方法進行初始化。
其中有用到super(x,y);
呼叫父類別的建構方法必須使用super保留字,super代表父類別,會依所傳遞的參數型別和數量,呼叫父類別中對應的方法,但要注意super()必須寫在建構方法的最前面。
當程式類別有問題需要修改時,因為是繼承的關係,只需要修改有問題的父或子類別就好,不需要每個類別一一修改,發揮繼承的方便性。
參考資料:
最新java程式語言第六版