iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
自我挑戰組

菜雞的JAVA日記系列 第 18

DAY18-JAVA的抽象類別(1)

透過繼承,我們可以從原有的類別衍生出新的類別,原有的類別稱為父類別,而衍生出的類別稱為子類別。透過這種機制,子類別不僅可以保有父類別的功能,同時也可以加入新的功能,以符合所需。

抽象類別
此外,JVAV也可以建立專門的類別用來當作父類別,這種類別稱為「抽象類別」(abstract class)。抽象類別的目的在於,可以依據它的格式來修改並建立新的類別。

抽象類別中的abstract函數,只能宣告為public、protected,或者是不做宣告,但是不能宣告成private,以便子類別能取用到它。

abstract class 類別名稱{ //定義抽象類別
宣告成員;
傳回值的資料型態 函數名稱(引數...){
...
}
修飾子 abstract 傳回值的資料型態 函數名稱(引數...);
}

抽象類別的目的是要依據它的格式來修改並建立新的類別,因此抽象類別裡的「抽象函數」並沒有定義處理方式
這句話的意思就是,當我們的子類別中有相同的資料成員要進行處理時,可以統一在父類別中進行函數和資料成員的設定;但是當各個子類別都需要用到相同的函式,但是處理方式不相同時,就可以先在父類別中定義,再把處理方法留在子類別中定義。

abstract class Shape{  //定義抽象類別Shape
    protected String color;  //資料成員
    public void Color(String str){  //一般函數,用來設計形狀的顏色
        color = str;
    }
    public abstract void area();  //抽象函數,在此沒有定義處理方法
}

下方是繼承的子類別所進行的父類別「改寫」。

class Circle extends Shape{  //定義子類別Circle
    protected double radius;  //資料成員
    
    public Circle(double r){  //建構元
        radius = r;
    }
    public abstract void area(){  //抽象函數,在此沒有定義處理方法
        System.out.println("color= "+color+", ");
        System.out.println("area= "+3.14*radius*radius);
    }
}

菜鳥工程師的體脂肪

菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link

中秋連假第三天一樣non-stop!!
See U tomorrow:))


上一篇
DAY17-JAVA的繼承(4)
下一篇
DAY19-JAVA的抽象類別(2)
系列文
菜雞的JAVA日記30

尚未有邦友留言

立即登入留言