gpt4 book ai didi

java - 接口(interface)方法 - 实现与定义

转载 作者:行者123 更新时间:2023-12-01 18:33:06 25 4
gpt4 key购买 nike

请解释为什么以下内容在 Java (1.7) 中无效。

有一个接口(interface):

interface foo {
mymethod(argument arg)
}

其中参数也是一个接口(interface):

interface argument{}

参数的实现:

class someArgument implements argument{}

以及 foo 的实现:

class bar implements foo {
mymethod(someArgument arg) {}
}

bar 会导致编译错误,因为 mymethod 未实现。有没有办法无需强制转换即可完成上述任务?

谢谢!

最佳答案

mymethod() 签名必须与 foo 接口(interface)中定义的精确一致。

假设您有另一个类 (baz) 实现argument。然后,mymethod(argument arg) 签名将允许传递 baz 类型的参数。

但是如果你保持这样:

class bar implements foo {
mymethod(someArgument arg) {}
}

您将无法将 baz 实例传递给 mymethod,因为您违反了契约(Contract)。

作为旁注,您应该遵循 naming conventions开发时!

关于java - 接口(interface)方法 - 实现与定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23248535/

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