我對swift很陌生,並且正在初始化一些問題。我已經創建了下面的代碼迅速文件:爲什麼超類指定的初始化程序默認被調用?
import Foundation
class SuperClass
{
var a : Int
init()
{
a = 10
print("In Superclass")
}
}
class SubClass : SuperClass
{
override init()
{
print("In Subclass")
}
}
在上面的代碼中,init()
不包含調用的SuperClass
init()
即存在SubClass init()
沒有super.init()
。
所以我的問題是:
爲什麼不給任何錯誤,如果我不叫指定的
SuperClass
init()
如果我創造的即let s = SubClass()
的對象時,輸出爲:In子類
在Superclass
爲什麼的init()
被調用?一個子類init()默認調用超類init()嗎?
請幫忙.. !!!
[蘋果文檔] [https://developer.apple.com/library/prerelease/content/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-ID203] ]表示該子類必須調用超類指定的初始化程序。你能用任何證據支持你的陳述嗎? – PGDev