假设我有一个内含默认init()
的类。
class Car {
var tires: Int
var doors: Int
init (tires: Int, doors: Int){
self.tires = tires
self.doors = doors
}
}
然后我要创建一个子类-例如宝马。 BMW子类将具有其自己的发动机容积唯一变量。
class BMW: Car {
var volume: Int
-------- type code here---------
}
我想使用父类的 init(),然后将 volume 变量添加到该 init()中,以便当我创建宝马子类的实例,代码如下:
var newCar = BMW(tires: Int, doors: Int, volume: Int)
注意*:我不想对子类本身中的任何值进行硬编码(使用super.init()),我想创建一个全新的初始化程序。
有可能吗?如果是,您能帮我吗?
谢谢。
答案 0 :(得分:1)
首先初始化子类的volume
属性,然后调用super
类的指定初始化程序
class BMW: Car {
var volume: Int
init(tires: Int, doors: Int, volume: Int) {
self.volume = volume
super.init(tires: tires, doors: doors)
}
}
答案 1 :(得分:0)
您可以只添加一个新的初始化程序。理想情况下,这应该使用super.init(tires:doors:)
调用您为Car类创建的初始化程序。
init(tires: Int, doors: Int, volume: Int) {
self.volume = volume
super.init(tires: tires, doors: doors)
}