私は Foo という名前のクラスを持っています。このクラスはジェネリック変数を格納します。Setという名前の別のクラスがあります。Set は Foo オブジェクトのセットであるため、Set はジェネリック クラスでもあります。この各クラスには多くの属性と実装されたメソッドがあり、これらのメソッドは任意の型を処理できます。
class Foo<T>{
private T var;
public void show(){ (...) }
(...)
}
class Set<T>{
private Foo<T>[] things;
public void showAllElements(){ (...) }
public int quantityOfElements(){ (...) }
(...)
}
Integer、String、Double、および任意のタイプのセットを作成できるようにします。
しかし、Foo クラスと Set クラスのテンプレートとしても使用したい抽象クラスがあります。それを Animal クラスと呼びましょう。
abstract class Animal{
private String voice;
public void talk(){ (...) }
}
そして、次のような動物のセットを作りたい:
class FooAnimal<T extends Animal>{
private T var;
public void show(){ (...) }
public void talk(){
var.talk();
}
}
class SetOfAnimals<T extends Animal>{
private FooAnimal<T>[] things;
public void showAllElements(){ (...) }
public int quantityOfElements(){ (...) }
public void makeAllTheAnimalsTalk(){
for(int i=0; i<things.lenght(); i++)
things[i].talk();
}
}
Foo および Set 用に作成したコードを SetOfAnimals および FooAnimal クラスにコピー アンド ペーストすることなく、これを行うにはどうすればよいですか?
問題を説明する UML ダイアグラムへのリンクがあります。
http://i.imgur.com/r3yE37Y.png?1
これどうやってするの?この問題を解決するために、どの講義をお勧めしますか?
問題をより理解しやすいように編集する必要がありました...申し訳ありません。