Zauważyłem, że kompilator nie pozwala mi zastąpić przechowywanej właściwości inną przechowywaną wartością (co wydaje się dziwne):
class Jedi {
var lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor = "Red" // Cannot override with a stored property lightSaberColor
}
Jednak mogę to zrobić z obliczoną właściwością:
class Jedi {
let lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor : String{return "Red"}
}
Dlaczego nie mogę nadać mu innej wartości?
Dlaczego nadpisywanie przechowywanej własności jest obrzydliwością, a robienie tego z obliczoną wartością koszerną? Co oni myślą?