这个问题在这里已经有答案了:
在java中,我们可以将超类对象传递给子类引用吗(3个答案)
两年前关门了。
为什么代码:
Hello hello = GreetingUtil.hello();
获取此错误?
Incompatible types
Required Hello
Found Greeting
假设这些是类/接口,我无法控制 Greeting
以及 HelloWorld
因为它们是外部API,不是吗 Hello
属于 Greeting
类型?
public interface Greeting {
}
public interface Hello extends Greeting {
}
public class HelloWorld implements Greeting {
}
public class GreetingUtil {
public static Greeting hello() {
return new HelloWorld();
}
}
或者,我弄错了吗?谢谢您。
2条答案
按热度按时间e4eetjau1#
如果
Greeting
不在应用程序代码的范围内,则应更改HelloWorld
实施interface Hello
取而代之的是:然后再回来
Hello
从GreetingUtil.hello
方法也是:bjg7j2ky2#
helloworld和hello是两个兄弟姐妹,不是父/子。
问题在代码中:
Hello hello = GreetingUtil.hello();
应该有