如果我有两个接口(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/