多くのプロジェクトにプラグインできるツールキットとして使用している Java クラスのセットがあります。このツールキットのコードを変更したくないので、更新したりバグを修正したりするたびに、それを使用しているプロジェクトにドロップするだけで、ローカルの変更について心配する必要はありません。したがって、ローカル プロジェクトでツールキットのメソッドをオーバーライドする必要がある場合は、次のようにツールキット オブジェクトのローカル バージョンを作成するだけです。
ファイル: ツールキット/Dog()
public class Dog(){
public void pet(){
print("scratch ruff");
}
}
ファイル: local/Dog()
public class Dog extends toolkit/Dog {
public void pet(){
print("rub ears");
}
}
Dog
また、ローカル オブジェクトでは、ツールキット オブジェクトではなくローカル オブジェクトを参照しDog
ます。
これまでのところうまくいきましたが、問題が発生しました。ツールキットの別のクラスは を使用しDog
ます。
ファイル: ツールキット/DogHandler
public void careForPack( List<Dog> arg_allTheDogs ){
for( Dog fido : arg_allTheDogs ){
fido.pet();
}
}
Dog
発生する問題は、システムがこれらが同じオブジェクトではないことを好まないことです。ローカルでオーバーライドしたくありませんDogHandler
。なぜなら、ツールキット全体をオーバーライドすることになり、目的が果たせなくなるからです。
がの子 ( とも呼ばれる) を有効であるDogHandler
と認識する方法はありますか?Dog
Dog