1. 程式人生 > >Swift3.0-繼承、構造、類擴充套件

Swift3.0-繼承、構造、類擴充套件

繼承(inherit單向關係

   1、定義:某個類通過繼承語法而獲取另一個類的屬性和方法。

   2、最大好處:實現程式碼複用(父類中的屬性和方法可以被子類直接使用),子類還可以拓展父類的方法和屬性

   3、缺點:增加了程式耦合性(如:父類發生改變,子類程式碼可能需要重新構造,相關程式碼也需要重新編譯)

   4Swift中只有單繼承(通過擴充套件協議實現多繼承)

   5、!!!繼承是類與結構和列舉等型別最重要的區別之一

   6、!!!Swift中不僅可以重寫方法還可以重寫屬性

構造方法(構造一個物件時被呼叫的方法)

構造方法最主要的作用就是:對物件進行初始化(即給物件所佔用的記憶體進行初始化)

/*
 * 類擴充套件(extension關鍵字)
   給現有類新增一個方法,缺點是不能擴充套件增加儲存屬性
 */
class Person {
    var height:Double?
    var sex:Bool = true
}
extension Person{
    //擴充套件的構造方法
    convenience init(height:Double){
        self.init()
        self.height = height
    }
    //擴充套件的計算屬性
    var standardWeight:Double{
        let e = self.sex ? 22.0 : 20.0
        return height! * height! * e
    }
    //擴充套件的普通方法
    func getResults() -> String {
        return "計算體重"
    }
}
var p = Person(height:2.3)
print(p.standardWeight)
print(p.getResults())