Saya perhatikan bahwa kompilator tidak akan membiarkan saya mengganti properti tersimpan dengan nilai tersimpan lain (yang tampak aneh):
class Jedi {
var lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor = "Red" // Cannot override with a stored property lightSaberColor
}
Namun, saya diizinkan melakukan ini dengan properti yang dihitung:
class Jedi {
let lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor : String{return "Red"}
}
Mengapa saya tidak diizinkan memberikan nilai lain?
Mengapa menimpa dengan properti yang disimpan adalah kekejian dan melakukannya dengan yang dihitung halal? Apa yang mereka pikirkan?