覆盖Swift中的var

时间:2015-01-15 20:53:14

标签: ios swift override

我正在尝试通过遵循不同的教程来学习Swift,但我遇到了一个问题。我有以下代码:

Class Vehicle {
    var seats = 5
    var maxSpeed = 100
}

class Bike : Vehicle{
    override var seats = 3
}

但是我一直收到有关尝试覆盖var seats的错误,并声明Cannot override with a stored property 'seats'

我做错了什么?我以为我可以覆盖继承的变量?

1 个答案:

答案 0 :(得分:4)

您实际上不需要覆盖该属性,只需使用其他值进行初始化,这可以在初始化程序中完成:

class Vehicle {
    var seats = 5
    var maxSpeed = 100
}

class Bike : Vehicle{
    override init() {
        super.init()
        self.seats = 3
    }
}

至于重写属性,lang reference表示:

  

您可以覆盖继承的实例或类属性,为该属性提供自己的自定义getter和setter,或添加属性观察器以使覆盖属性能够在基础属性值更改时进行观察。