このクラス階層があるとします...
public abstract class Animal {
public abstract void eat();
public abstract void talk();
}
class Dog extends Animal {
@Override
public void eat() {
}
@Override
public void talk() {
}
}
class Cat extends Animal {
@Override
public void eat() {
}
@Override
public void talk() {
}
}
それから…
public static <T extends Animal> void addAnimal(T animal) {
animal.eat();
animal.talk();
}
public static void addAnimalPoly(Animal animal) {
animal.eat();
animal.talk();
}
制限された型パラメーターまたはポリモーフィズムを使用する場合の違いは何ですか?
そして、いつどちらを使用するのですか?
addAnimals(List<Animal>)
、猫のリストを書いて追加してみてください!