重写一个存储的属性,我注意到,编译器不会让我重写与其他存储的数据进行存储的属性(这似乎很奇怪):斯威夫特
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