• 코드:
​x
 
1
import java.util.*;
2
​
3
class LandAnimal { public void crying() { System.out.println("육지동물"); } }
4
class Cat extends LandAnimal { public void crying() { System.out.println("냐옹냐옹"); } }
5
class Dog extends LandAnimal { public void crying() { System.out.println("멍멍"); } }
6
class Sparrow { public void crying() { System.out.println("짹짹"); } } 
7
​
8
class AnimalList<T> {
9
    ArrayList<T> al = new ArrayList<T>();
10
    
11
    void add(T animal) { al.add(animal); }
12
    T get(int index) { return al.get(index); }
13
    boolean remove(T animal) { return al.remove(animal); }
14
    int size() { return al.size(); }
15
}
16
​
17
public class prog {
18
    public static void main(String[] args) {
19
        AnimalList<LandAnimal> landAnimal = new AnimalList<>(); // Java SE 7부터 생략가능함.
20
        
21
        landAnimal.add(new LandAnimal());
22
        landAnimal.add(new Cat());
23
        landAnimal.add(new Dog());
24
        // landAnimal.add(new Sparrow());   // 오류가 발생함.
25
        
26
        for (int i = 0; i < landAnimal.size() ; i++) {
27
            landAnimal.get(i).crying();
28
        }
29
    }
30
}
표준입력 & 실행옵션