iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0

繼承(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()必須寫在建構方法的最前面。

https://ithelp.ithome.com.tw/upload/images/20221010/20152201jUcdc28HKg.png

當程式類別有問題需要修改時,因為是繼承的關係,只需要修改有問題的父或子類別就好,不需要每個類別一一修改,發揮繼承的方便性。

參考資料:
最新java程式語言第六版


上一篇
StringBuffer與規則表示法
下一篇
繼承(下)
系列文
大學每日任務:攝取新知識及學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言