Swift中,一個類能夠從另外一個類繼承方法、屬性、下標及其餘特性。當一個類繼承於另外一個類時,這個類被稱爲子類,所繼承的類被稱爲父類。在Swift中,繼承是類區別於其餘類型的主要特徵。子類除了能夠調用父類的屬性,下標,方法外,其也能夠對父類的屬性,下標,方法進行覆寫。安全
不繼承於任何類的類被稱爲基類,示例以下:ide
class Shape { var center:(Double,Double) init(){ center = (0,0) } }
上面代碼定義了一個圖形類,其中定義了一箇中心點,任何圖形都會有中心點,因此把其做爲基類屬性。spa
圖形基類能夠派生出許多圖形子類,例如矩形,圓形等,示例代碼以下: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
在開發中不少狀況下爲了安全考慮,有些方法和屬性是不容許子類進行覆寫的,使用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