我有A类类(class)。及其子类 B。我需要重写其属性的类型。更改协议(protocol)也可以。我怎样才能做到这一点?
class A {
var property: String (or SomeProtocolA)
}
class B: A {
var property: Int (or SomeProtocolB)
}
也许可以为子类中的属性添加第二个协议(protocol)的支持?
最佳答案
你不能,这表明设计很糟糕。
假设 A 类有一个函数:
class A {
var property: String (or SomeProtocolA)
func getMyString() -> String {
return property
}
}
现在类 B 继承了它,同时“覆盖”属性
:
class B : A {
var property: Int(or SomeProtocolB)
// func getMyString() -> String { //inherited from superclass
// return property //type error, expected String, returning Int
//}
}
关于ios - Swift 和来自父类(super class)的属性继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868025/