20
public interface MyInterface{
    public int myMethod();
}


public class SuperClass {
    public String myMethod(){
        return "Super Class";
    }
}

public class DerivedClass extends SuperClass implements MyInterface {
    public String myMethod() {...}  // this line doesn't compile 
    public int myMethod() {...}     // this is also unable to compile
}

コンパイルしようとするDerivedClassと、エラーが発生します

java: interfaceRnD.DerivedClass の myMethod() は、interfaceRnD.SuperClass の myMethod() をオーバーライドできません
  戻り値の型 int は java.lang.String と互換性がありません

この問題を解決するにはどうすればよいですか?

4

4 に答える 4

13

シグネチャが同じで戻り値の型が異なる 2 つのメソッドを持つことはできません。

これは、呼び出しを行うときに、呼び出しようとしているメソッドをコンパイラが認識できないためですobject.myMethod();

于 2013-06-17T17:08:37.307 に答える