Java多重继承使用两个具有相同方法但不同返回类型的接口(interface)

标签 java

如果我有两个接口(interface),其方法名为 m(),一个的返回类型是 void,另一个是 int,并且我想在一个类中实现这两个方法,这应该如何实现

最佳答案

由于以下类无法编译的原因,这是不可能的。

两个方法不能具有相同的名称和相同的参数列表。

public class Clazz {
    public void m() {}
    public int  m() {}
}
<小时/>

解决方案是使用匿名类返回每个接口(interface)的实例的方法。

public interface One {
    void m();
}

public interface Two{
    int m();
}

public class Clazz {
    One getOne(){
        return new One(){
            @Override
            public void m() {
                // TODO Auto-generated method stub
            }
        };
    }

    Two getTwo(){
        return new Two(){
            @Override
            public int m() {
                // TODO Auto-generated method stub
                return 0;
            }
        };
    }
}

关于Java多重继承使用两个具有相同方法但不同返回类型的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36450588/

相关文章:

java - Python脚本写出一个文件,可以从命令行运行,但不能从java应用程序运行

java - 如何在netbeans中创建maven项目的jar文件

java - Tomcat修改根目录的方法

java - 我的方法有什么问题?

java - neo4j 在检查服务状态时找不到 JAVA_HOME

java - 一个接一个地移动一个球

java - 为银行创建随机访问文件

java - Java 中的 Web 服务

java - Android TCP 连接(服务器-客户端编程)

java - 将 int[] 转换为 boolean[]