在Swift中,有人能解释一下如何用从原始属性继承的另一个对象的子类来覆盖超类上的属性吗?
以这个简单的例子为例:
class Chassis {}
class RacingChassis : Chassis {}
class Car {
let chassis = Chassis()
}
class RaceCar: Car {
override let chassis = RacingChassis() //Error here
}
这会导致错误:
Cannot override with a stored property 'chassis'
如果我将底盘变量名更改为“var”,则会出现错误:
Cannot override mutable property 'chassis' of type 'Chassis' with covariant type 'RacingChassis'
我在“覆盖属性”部分的指南中只找到了一件事,表明我们必须覆盖getter和setter,这可能适用于更改属性的值(如果它是'var'),但是更改属性类怎么办?
chassis!
),所以override var chassis : Chassis!
可以解决它。 - James