您的位置:首页 > 编程语言 > Java开发

java 泛型之 通配符的限定 之 extends 的实例

2017-10-24 23:28 405 查看
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());
}

}
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 泛型
相关文章推荐