小编Jam*_*mes的帖子

在Swift中覆盖不同类型的超类属性

在Swift中,有人可以解释如何使用从原始属性子类化的另一个对象覆盖超类的属性吗?

举个简单的例子:

class Chassis {}
class RacingChassis : Chassis {}

class Car {
    let chassis = Chassis()
}
class RaceCar: Car {
    override let chassis = RacingChassis() //Error here
}
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

Cannot override with a stored property 'chassis'
Run Code Online (Sandbox Code Playgroud)

如果我将底盘改为'var',我会收到错误:

Cannot override mutable property 'chassis' of type 'Chassis' with covariant type 'RacingChassis'
Run Code Online (Sandbox Code Playgroud)

我在"覆盖属性"下的指南中唯一能找到的东西表示我们必须覆盖getter和setter,这可能有助于更改属性的值(如果它是'var'),但是如何更改属性类呢?

swift

122
推荐指数
3
解决办法
6万
查看次数

标签 统计

swift ×1