gpt4 book ai didi

swift - 为什么这个带有可选参数的方法不覆盖基类方法?

转载 作者:IT王子 更新时间:2023-10-29 05:29:19 24 4
gpt4 key购买 nike

结果是“a”,但我希望它是“b”。我想知道为什么,以及如何在没有参数的情况下调用 doTest 来打印“b”。

class AA {
func doTest() {
print("a")
}
}

class BB: AA {
func doTest(_ different: Bool = true) {
print("b")
}
}

let bObjc = BB()
bObjc.doTest()

最佳答案

BB 类没有覆盖AA 中的方法,这意味着BB 上存在两个方法:

func doTest() // inherited
func doTest(_ different: Bool = true) // declared

当你打电话时

bObjc.doTest()

编译器必须选择其中之一。而且它更喜欢没有参数的方法而不是有默认参数的方法。

关于swift - 为什么这个带有可选参数的方法不覆盖基类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56664243/

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