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泛型通配符 extends 和 super
- Java基础 通配符?+泛型限定
- java 泛型实例详解(普通泛型、 通配符、 泛型接口)
- 黑马程序员_java对泛型的限定: <? extends E > , < ? super E > 的理解和体会。
- JAVA之旅(二十一)——泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符
- java 之 泛型的通配符 和 泛型的限定
- JAVA之旅(二十一)——泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符
- Java泛型类型限定和通配符类型限定
- 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现
- Java学习之道:简述泛型通配符<? extends T>和<? super T>
- Java 泛型通配符extends 与 super
- 深入java 泛型通配符和上下界限定
- Java学习之道:简述泛型通配符<? extends T>和<? super T>
- 黑马程序员--Java基础加强--06.【泛型通配符限定】【个人总结】
- java 泛型通配符 extends, super
- Java泛型——类型通配符<?> 与 类型通配符上限<? extends Number>
- Java 之泛型通配符 ? extends T 与 ? super T 解惑
- java 泛型详解(普通泛型、 通配符、 泛型接口)
- Java,泛型类型通配符和C#对照
- Java 泛型(super和extends关键字)