gpt4 book ai didi

java - 为什么不能在重写的方法中放宽参数类型?

转载 作者:行者123 更新时间:2023-11-29 03:47:55 25 4
gpt4 key购买 nike

此代码无效:

interface Foo
{
public void foo(final String string);
}

public class Bar implements Foo
{
// Error: does not override.
@Override public void foo(final Object object)
{
}
}

因为每个 String显然是一个 Object , 我希望这段代码非常好:任何依赖于给定 foo() 的代码一个Stringfoo() 时仍会起作用实际上需要一个 Object .

不过,看起来方法签名必须与它们覆盖的方法的签名相同。为什么?

最佳答案

如果

interface Foo
{
void foo(String string);
void foo(Object string);
}

那么Bar重写了哪个方法呢?

关于java - 为什么不能在重写的方法中放宽参数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10067850/

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