import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
class Animal
{
String name;
int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "动物:"+getName()+".."+getAge();
}
}
class Dog extends Animal
{
public Dog(String name, int age) {
super(name, age);
}
@Override
public String getName() {
return super.getName();
}
@Override
public void setName(String name) {
super.setName(name);
}
@Override
public int getAge() {
return super.getAge();
}
@Override
public void setAge(int age) {
super.setAge(age);
}
@Override
public String toString() {
return "狗:"+getName()+".."+getAge();
}
}
class Cat extends Animal
{
public Cat(String name, int age) {
super(name, age);
}
@Override
public String getName() {
return super.getName();
}
@Override
public void setName(String name) {
super.setName(name);
}
@Override
public int getAge() {
return super.getAge();
}
@Override
public void setAge(int age) {
super.setAge(age);
}
@Override
public String toString() {
return "猫:"+getName()+".."+getAge();
}
}
class MyAnimal<E> extends ArrayList<E>
{
@Override
public boolean add(E e) {
return super.add(e);
}
@Override
public boolean addAll(Collection<? extends E> c) {
return super.addAll(c);
}
}
class Main
{
public static void main(String args[])
{
MyAnimal<Animal> a=new MyAnimal<Animal>();
a.add(new Animal("神奇的动物",12));
a.add(new Animal("神奇的动物啊",14));
a.add(new Animal("神奇的动",7));
MyAnimal<Dog> d=new MyAnimal<Dog>();
d.add(new Dog("神奇的狗",13));
d.add(new Dog("旺财",3));
MyAnimal<Cat> c=new MyAnimal<Cat>();
c.add(new Cat("神奇的猫",18));
c.add(new Cat("小强",9));
a.addAll(d);
a.addAll(c);
Iterator<Animal> it=a.iterator();
while(it.hasNext())
{
System.out.println(it.next().toString());
}
}
}
运行结果: