3

を持っています

public interface DoIt {
    void dosomething (int i, double x);
    int dosomethingelse (String s);
}

それを実装するクラスclass_of_aなどです...そして、インターフェイスに新しいメソッドを追加したいのですがdiditwork(int x); 、再コンパイルの問題やその他の問題を回避しながら、どのようにそれを行うと思いますか? 新しい階層とは何ですか?

4

3 に答える 3

7

新しいインターフェイスを作成し、古いインターフェイスを次のように拡張します。

interface DoIt2 extends DoIt
{
    // void doSomething(int i, double x);
    // int doSomethingelse(String s);
    void didItWork(int x);
}
于 2012-07-10T14:26:22.910 に答える
2

次のように既存のインターフェースを拡張できます。

interface DoItMore extends DoIt {  diditwork(int x);  }  

したがって、低レベルのクラス用の古いインターフェースと高レベル用の新しいインターフェースがあります。次に、高レベルクラスで使用されているインターフェイスを変更する必要があります。

于 2012-07-10T14:30:41.090 に答える
-1

別のインターフェースを作成し、指定されたクラスに両方のインターフェースを実装させます

例えば

public interface DoIt { 
    void dosomething(int i, double x);
    int dosomethingelse(String s);
}

と新しいインターフェース

public interface CheckIt {
    boolean diditwork(int x);
}

チェックする必要のないクラスは DoIt インターフェイスのみを実装し、チェックする必要のあるクラスは CheckIt インターフェイスも実装します。

于 2012-07-10T14:27:57.087 に答える