您只能将计算变量与 setter 和 getter 一起使用来覆盖超类的存储 属性

You can only use the computed variable with both setter and getter to overriding the stored property of the superclass

您只能将计算变量与 settergetter 一起使用来覆盖超类的存储 属性。我通过尝试以下代码得出了这个结论。我不确定我是 100% 正确的。如果我错了,请纠正我。谢谢!

class SuperClass {
    var ID = 2202
}

//Wrong
class SubClass: SuperClass {
    override var ID = 2203
}

//worng
class SubClass: SuperClass {
    override var ID: Int {
        return super.ID + 1
    }
}

//Correct
class SubClass: SuperClass {
    override var ID: Int {
        get {
            return super.ID + 1
        }
        set {

        }
    }
}

您不能覆盖超类的已存储 属性,但您可以从子类更改其值:

class SuperClass {
    var ID = 2202
}

class SubClass: SuperClass {
    override init() {
        super.init()
        self.ID = 2203
    }
}

let a = SuperClass()
let b = SubClass()

print(a.ID)
print(b.ID)