您只能将计算变量与 setter 和 getter 一起使用来覆盖超类的存储 属性
You can only use the computed variable with both setter and getter to overriding the stored property of the superclass
您只能将计算变量与 setter
和 getter
一起使用来覆盖超类的存储 属性。我通过尝试以下代码得出了这个结论。我不确定我是 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)
您只能将计算变量与 setter
和 getter
一起使用来覆盖超类的存储 属性。我通过尝试以下代码得出了这个结论。我不确定我是 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)