在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'
在指南的"Overriding Properties"下,我能找到的唯一一件事是,我们必须重写getter和setter,这可能有助于更改属性的值(如果是'var'),但是更改属性类呢?