gpt4 book ai didi

groovy - Groovy 特征的菱形继承(钻石问题)

转载 作者:行者123 更新时间:2023-12-03 21:26:02 25 4
gpt4 key购买 nike

在许多关于 Groovy Traits 的博客中都提到它将解决菱形继承(钻石问题)。但是我不清楚特征将如何解决菱形继承(钻石问题)的概念。

任何人都可以解释一下。

最佳答案

diamond problem当您有多重继承并且两个或多个父类(super class)定义一个或多个具有相同签名的函数时,这是一个问题。

使用 groovy 特征,行为是明确定义的。默认情况下,选择最后一个实现。

trait A {
String name() { "A" }
}
trait B {
String name() { "B" }
}
class C implements A,B { }
class D implements B,A { }

assert new C().name() == "B"
assert new D().name() == "A"

也可以选择您想要的:
class E implements A,B {
String name() { A.super.name() + B.super.name() }
}

assert new E().name() == "AB"

关于groovy - Groovy 特征的菱形继承(钻石问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46905780/

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