ios - 在 Swift 中覆盖一个 var

标签 ios swift overriding

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

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

class Bike : Vehicle{
    override var seats = 3
}

但我不断收到有关尝试覆盖 var seats 的错误,指出 无法使用存储的属性“seats”覆盖

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

最佳答案

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

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

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

至于覆盖属性,lang reference指出:

You can override an inherited instance or class property to provide your own custom getter and setter for that property, or to add property observers to enable the overriding property to observe when the underlying property value changes.

关于ios - 在 Swift 中覆盖一个 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27972777/

相关文章:

iOS - 计时用户阅读时间,同时可以暂停

iOS Facebook fql 请求返回照片 url

swift - 如何提高 ARKit 中的相机质量

java - “overriding” java中具有向上转换调用的私有(private)方法

c# - 忽略元数据覆盖?

javascript - 使用 Javascript 模块模式重写方法

ios - 在特定时间自动打开 iOS 应用程序

ios - 在Facebook上分享截图

uitableview - 按下按钮时 UITableView 标题 View 的动画显示(快速)

ios - NSLinkAttributeName 在 UITextView 中不起作用