不,没有办法在Java的一个类中以两种不同的方式实现相同的方法。
这可能导致许多令人困惑的情况,这就是Java不允许这样做的原因。
interface ISomething {
void doSomething();
}
interface ISomething2 {
void doSomething();
}
class Impl implements ISomething, ISomething2 {
void doSomething() {} // There can only be one implementation of this method.
}
你可以做的是在两个类中组成一个类,每个类实现一个不同的接口。这样一类将具有两个接口的行为。
class CompositeClass {
ISomething class1;
ISomething2 class2;
void doSomething1(){class1.doSomething();}
void doSomething2(){class2.doSomething();}
}