这里是构造了一个集合类,然后存储了几种类型。
比较离谱的是Bcage里可以存储Lion的变量.
import java.util.*;
import java.util.Scanner;
class Animal{
}
class Bird extends Animal{
}
class Lion extends Animal{
}
class Cage<E> extends HashSet {
}
public class Main{
public static void main(String[] args) {
//class Cage<Bird> extends HashSet{
//
//}
//class Cage<Lion> extends HashSet{
//
//}//这就离谱...
Animal a = new Animal();
Bird b = new Bird();
Lion l = new Lion();
Cage<Animal> Acage = new Cage<Animal>();
Cage<Bird> Bcage = new Cage<Bird>();
Cage<Lion> Lcage = new Cage<Lion>();
Acage.add(a);
Bcage.add(b);
Lcage.add(l);
Acage.add(b);
Acage.add(l);
Bcage.add(l);
System.out.println(Acage);
System.out.println(Bcage);
System.out.println(Lcage);
}
//没有写main,结果需要标识符了,..
}
输出:
[Bird@73035e27, Lion@64c64813, Animal@f5f2bb7]
[Bird@73035e27, Lion@64c64813]
[Lion@64c64813]