を持っています
public interface DoIt {
void dosomething (int i, double x);
int dosomethingelse (String s);
}
それを実装するクラスclass_of_a
などです...そして、インターフェイスに新しいメソッドを追加したいのですがdiditwork(int x);
、再コンパイルの問題やその他の問題を回避しながら、どのようにそれを行うと思いますか? 新しい階層とは何ですか?
を持っています
public interface DoIt {
void dosomething (int i, double x);
int dosomethingelse (String s);
}
それを実装するクラスclass_of_a
などです...そして、インターフェイスに新しいメソッドを追加したいのですがdiditwork(int x);
、再コンパイルの問題やその他の問題を回避しながら、どのようにそれを行うと思いますか? 新しい階層とは何ですか?
新しいインターフェイスを作成し、古いインターフェイスを次のように拡張します。
interface DoIt2 extends DoIt
{
// void doSomething(int i, double x);
// int doSomethingelse(String s);
void didItWork(int x);
}
次のように既存のインターフェースを拡張できます。
interface DoItMore extends DoIt { diditwork(int x); }
したがって、低レベルのクラス用の古いインターフェースと高レベル用の新しいインターフェースがあります。次に、高レベルクラスで使用されているインターフェイスを変更する必要があります。
別のインターフェースを作成し、指定されたクラスに両方のインターフェースを実装させます
例えば
public interface DoIt {
void dosomething(int i, double x);
int dosomethingelse(String s);
}
と新しいインターフェース
public interface CheckIt {
boolean diditwork(int x);
}
チェックする必要のないクラスは DoIt インターフェイスのみを実装し、チェックする必要のあるクラスは CheckIt インターフェイスも実装します。