我正在尝试通过不同的教程学习Swift语言,但是我遇到了一个问题。下面是我的代码:
Class Vehicle {
var seats = 5
var maxSpeed = 100
}
class Bike : Vehicle{
override var seats = 3
}
但是我不断地收到有关尝试覆盖var seats
的错误,指出无法使用存储属性'seats'进行重写
。
我做错了什么?我以为我可以覆盖继承的变量?
我正在尝试通过不同的教程学习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
}
}
,但在后来的子类(子类
automaticCar : Car)中,
var currentSpeed被覆盖了,用了
override var currentSpeed: Double {....`。为什么这样是允许的,而我的不行呢? - tobyapp