我有一个超级班
class asuper{
static var x = ""
static func printX{
print(x)
}
}
Run Code Online (Sandbox Code Playgroud)
但是我有一个想要更改值 x 的子类,我该怎么做?
class asubclass {
static fucn newPrintX{
//want to ensure X is changed before any static method uses x
print(x + "sub")
}
}
Run Code Online (Sandbox Code Playgroud)
正如其他人已经说过的,您不能覆盖静态方法或属性。
class替代因此,不能覆盖静态存储的属性。
然而,静态计算属性和方法可以更新为类成员(而不是静态成员)。
它们仍然属于类型本身,购买您将能够在子类中被覆盖。
class Animal {
class var typeName: String { "Animal" }
class func saySomething() {
print("I'm an Animal")
}
}
class Dog: Animal {
override class var typeName: String { "Dog" }
override class func saySomething() {
print("I'm a Dog")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |