Commit 72d81264 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch10b] Examples for generic weirdness

parent 5b0fe263
Loading
Loading
Loading
Loading
+38 −0
Changes for src/main/java/ch10b/TestGenerics1.java: 38 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch10b;

public class TestGenerics1 {
  public static void main(String[] args) {
    new TestGenerics1().go();
  }

  public void go() {
    Animal[] animals = {new Dog(), new Cat(), new Dog()};
    Dog[] dogs = {new Dog(), new Dog(), new Dog()};
    takeAnimals(animals);
    takeAnimals(dogs);
  }

  public void takeAnimals(Animal[] animals) {
    for (Animal a : animals) {
      a.eat();
    }
  }
}

abstract class Animal {
  void eat() {
    System.out.println("animal eating");
  }
}

class Dog extends Animal {
  void bark() {
  }
}

class Cat extends Animal {
  void meow() {
  }
}
	
	
 No newline at end of file
+26 −0
Changes for src/main/java/ch10b/TestGenerics2.java: 26 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch10b;

import java.util.*;

public class TestGenerics2 {
  public static void main(String[] args) {
    new TestGenerics1().go();
  }

  public void go() {
    List<Animal> animals = new ArrayList<>();
    animals.add(new Dog());
    animals.add(new Cat());
    animals.add(new Dog());

    takeAnimals(animals);
  }

  public void takeAnimals(List<Animal> animals) {
    for (Animal a : animals) {
      a.eat();
    }
  }
}

	
 No newline at end of file