Swift中子類必須包含的構造器和析構器

2021-09-07 05:43:07 字數 886 閱讀 9167

import foundation

/*swift中子類必須包含的構造器

1.swift允許在父類構造器前新增required關鍵字, 用於宣告所有子類必須包含該required構造器

(如果沒有宣告, 子類中缺省會自動包含), 至於要怎麼實現父類中required構造器, 沒有特殊要求

可以通過便利構造器實現, 也可以通過普通構造器實現

2.父類中宣告的required構造器既可以是指定構造器, 也可以是便利構造器

swift中子類必須包含的析構器(用於在物件釋放之前進行資源釋放, 物件會在析構器執行完之後才銷毀)

1.析構器是乙個名為deinit的函式, 不需要使用func關鍵字, 無引數和返回值

2.析構器在例項釋放之前由系統自動呼叫, 不要主動呼叫析構器

3.子類自動繼承父類的析構器, 而且無論如何, 子類析構器一定會呼叫父類析構器

*/class person

required convenience init(name: string)

deinit

}class man: person

required convenience init(name: string, weight: double)

deinit

}class woman: person

var man:man? = man(name: "rinpe")

print(man)

var man2 = man(name: "lala", weight: 0.0)

print(man2)

var woman = woman(name: "lili", weight: 0.0)

print(woman)

man = nil

C 中子類的建構函式

構造方法用來初始化類的物件,與父類的其它成員不同,它不能被子類繼承 子類可以繼承父類所有的成員變數和成員方法,但不繼承父類的構造方法 因此,在建立子類物件時,為了初始化從父類繼承來的資料成員,系統需要呼叫其父類的構造方法。如果沒有顯式的建構函式,編譯器會給乙個預設的建構函式,並且該預設的建構函式僅僅...

java中子類構造方法和父類構造方法

1.當子類不重寫構造方法,子類預設擁有乙個無參構造方法,但是,注意,這個構造方法第一行預設執行super class father class son extends father class demo 執行結果列印出 子類會呼叫father的構造方法 2.當子類重寫了自己的構造方法,構造方法預設第...

python中子類呼叫父類構造方法

python和其他物件導向語言類似,每個類可以擁有乙個或者多個父類,它們從父類那裡繼承了屬性和方法。如果乙個方法在子類的例項中被呼叫,或者乙個屬性在子類的例項中被訪問,但是該方法或屬性在子類中並不存在,那麼就會自動的去其父類中進行查詢。繼承父類後,就能呼叫父類方法和訪問父類屬性,而要完成整個整合過程...