java - Java 中的接口(interface)继承

标签 java oop inheritance interface

<分区>

为什么代码:

Hello hello = GreetingUtil.hello();

收到此错误?

Incompatible types
Required Hello
Found Greeting

假设这些是类/接口(interface),我无法控制 GreetingHelloWorld,因为它们是外部 API,不是 Hello问候语类型的吗?

public interface Greeting {
}

public interface Hello extends Greeting {
}

public class HelloWorld implements Greeting {
}

public class GreetingUtil {
    public static Greeting hello() {
        return new HelloWorld();
    }
}

或者,我理解错了吗?谢谢。

最佳答案

如果 Greeting 不在您的应用程序代码范围内,那么您应该更改 HelloWorld 以实现 interface Hello :

public class HelloWorld implements Hello {
}

然后从 GreetingUtil.hello 方法返回 Hello :

public static Hello hello() {
    return new HelloWorld();
}

关于java - Java 中的接口(interface)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53664103/

相关文章:

javascript - 为什么在 OOP javascript 中使用 object.prototype.constructor ?

php - 如何将 JSON 对象映射到 PHP 类?

javascript - OOP javascript 和简单类实例化

c++ - 在访问存储在 vector<base*> 中的已知派生类对象时使用 dynamic_cast 或 static_cast 有什么问题?

java - Java 和 Hibernate 的继承 - 更新类型转换

Java排序与比较

java - float 比较不匹配

java - 与 FTPSClient 的 SFTP 连接失败

java - 在我的类(class)中将 super() 或 this() 放在哪里

java - 具有新功能的向后兼容框架