重寫一個存儲的屬性,我注意到,編譯器不會讓我重寫與其他存儲的數據進行存儲的屬性(這似乎很奇怪):斯威夫特
class Jedi {
var lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor = "Red" // Cannot override with a stored property lightSaberColor
}
然而,我被允許用做此計算屬性:
class Jedi {
let lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor : String{return "Red"}
}
爲什麼我不允許給它另一個值?
爲什麼用存儲的屬性重寫一個可憎的事物,並用一個計算出來的一個猶太人來做呢?他們在想什麼?
[重寫與不同類型的超類屬性在Swift]藥物的可能重複(http://stackoverflow.com/questions/24094158/overriding-superclass-property-with-different-type-in-swift) – 2015-09-18 14:56:16