Animal.java 592 B

12345678910111213141516171819202122232425
  1. public static class Animal {
  2. public String toString() {
  3. return getClass().getSimpleName();
  4. }
  5. }
  6. public static class Rat extends Animal {}
  7. public static class Lion extends Animal {}
  8. public static class Cage<T extends Animal> {
  9. /* above */
  10. }
  11. public static void main(String[] args) {
  12. Cage<Animal> animals = new Cage<Animal>();
  13. Cage<Lion> lions = new Cage<Lion>();
  14. // OK to put a Rat into a Cage<Animal>
  15. animals.add(new Rat());
  16. lions.add(new Lion());
  17. // invoke the super generic method
  18. lions.transferTo(animals);
  19. animals.showAnimals();
  20. }