public void F1(Class1<?> a) { } // усі типи public void F1(Class1<? extends Numbers> a) { } // усі хто успадковує Numbers public void F1(Class1<? super Numbers> a) { } // вище Numbers, аж до Object F1(new Class1<Integers>); F1(new Class1<Worker>); F1(new Class1<Object>); Приклад import java.util.ArrayList; import java.util.List; List<Animal> listOfAnimal = new ArrayList<>(); listOfAnimal.add(new Animal(1)); listOfAnimal.add(new Animal(2)); Show(listOfAnimal); List<Cat> listOfCats = new ArrayList<>(); listOfCats.add(new Cat()); listOfCats.add(new Cat()); Show(listOfCats); } public static void Show(List<? extends Animal> list) { for(Animal animal : list) { System.out.println(animal); } } ----------------- public class Animal { private int id; public Animal() { } public Animal(int id) { this.id = id; } public String toString() { return String.valueOf(id); } } ----------------- } |