Swift專題講解十四——繼承

Swift專題講解十四——繼承

1、引言

        Swift中,一個類能夠從另外一個類繼承方法、屬性、下標及其餘特性。當一個類繼承於另外一個類時,這個類被稱爲子類,所繼承的類被稱爲父類。在Swift中,繼承是類區別於其餘類型的主要特徵。子類除了能夠調用父類的屬性,下標,方法外,其也能夠對父類的屬性,下標,方法進行覆寫。安全

2、定義一個基類

        不繼承於任何類的類被稱爲基類,示例以下:ide

class Shape {
    var center:(Double,Double)
    init(){
        center = (0,0)
    }
}

上面代碼定義了一個圖形類,其中定義了一箇中心點,任何圖形都會有中心點,因此把其做爲基類屬性。spa

3、定義一個子類

        圖形基類能夠派生出許多圖形子類,例如矩形,圓形等,示例代碼以下:code

class Circle: Shape {
    var Radio:Double = 0
}
class Rect: Shape {
    var size:(Double,Double)=(0,0)
}
var circle = Circle()
circle.center = (1,1)

能夠看到,Circle類從父類中繼承到了center屬性。默認子類也會繼承父類的構造方法,若是子類須要實現本身的構造方法,能夠對父類的方法進行覆寫,使用override關鍵字:繼承

class Rect: Shape {
    var size:(Double,Double)=(0,0)
    override init(){
        super.init()
        super.center = (1,1)
    }
}

經過super關鍵字能夠調用父類的屬性和方法,一樣,也可使用override關鍵字來對屬性進行get和set的覆寫。一樣也能夠重寫屬性的觀察期willset和didset。ci

4、final關鍵字

        在開發中不少狀況下爲了安全考慮,有些方法和屬性是不容許子類進行覆寫的,使用final聲明這些屬性,方法或者下標能夠起到這樣的做用。示例以下:開發

class Shape {
    final var center:(Double,Double)
    init(){
        center = (0,0)
    }
}

若是想將某個類設置爲不可繼承的,能夠將此類使用final關鍵字修飾,示例以下:get

final class Shape {
    final var center:(Double,Double)
    init(){
        center = (0,0)
    }
}

專一技術,熱愛生活,交流技術,也作朋友。it

——琿少 QQ羣:203317592io

相關文章
相關標籤/搜索