gpt4 book ai didi

swift - 如何在 Swift 中为子类重写初始化器

转载 作者:行者123 更新时间:2023-11-28 05:57:00 26 4
gpt4 key购买 nike

假设我有一个带有默认 init() 的类。

class Car { 
var tires: Int
var doors: Int
init (tires: Int, doors: Int){
self.tires = tires
self.doors = doors
}
}

然后我正在创建一个子类 - 例如 BMW。BMW 子类将有自己独特的发动机容积变量。

class BMW: Car {
var volume: Int
-------- type code here---------
}

我想使用父类的 init(),然后将我的 volume 变量添加到 init() 中,这样当我创建一个 subclass BMW 的实例,代码如下:

var newCar = BMW(tires: Int, doors: Int, volume: Int)

注意*:我不想在子类本身中硬编码任何值(使用 super.init()),我想创建全新的初始化程序。

这可能吗?如果是,你能帮帮我吗?

谢谢。

最佳答案

首先初始化子类的volume属性,然后调用super类的指定初始化器

class BMW: Car {
var volume: Int

init(tires: Int, doors: Int, volume: Int) {
self.volume = volume
super.init(tires: tires, doors: doors)
}
}

请阅读 Swift Language Guide: InitializationInheritance

关于swift - 如何在 Swift 中为子类重写初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51197918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com