10
覆盖Swift中的存储属性
我注意到编译器不会让我用另一个存储的值覆盖存储的属性(这似乎很奇怪): 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"} } 为什么不允许我再给它一个值? 为什么用存储的属性覆盖是可憎的,而用计算的一个犹太洁食呢?他们在想什么呢?