【发布时间】:2017-12-19 09:56:42
【问题描述】:
如果两个接口需要实现同名的方法,那么method()会被调用两次。 我需要为 2 个不同的接口实现 2 个方法,如何实现它们来做不同的事情?
public class MainClass implements BarObj.BarInt, FooObj.FooInt{
MainClass(){
}
void trigger()
{
new BarObj(this);
new FooObj(this);
}
@Override
public void method() {
System.out.println("I DONT KNOW WHICH METHOD");
}
public static void main(String[] args) {
new MainClass().trigger();
}
}
public class BarObj {
interface BarInt
{
void method();
}
public BarObj(BarInt _barInt)
{
_barInt.method();
}
}
public class FooObj {
interface FooInt
{
public void method();
}
public FooObj(FooInt _fooInt)
{
_fooInt.method();
}
}
【问题讨论】:
-
我认为编译器会在实现类中寻找一个被覆盖的方法,即使你有 2 个包含相同方法的接口。所以你无法区分。
-
创建两个类,一个实现一个接口,另一个实现另一个并创建一个主类来启动两个对象
标签: java