Java泛型实例
2010-09-15 21:58
302 查看
Java泛型实例:
Dog checkup
Dog checkup
Cat checkup
Cat checkup
Cat checkup
Bird checkup
Dog checkup
Dog checkup
Cat checkup
Cat checkup
Bird checkup
List<? extends Animal> aList = new ArrayList<Dog>();
在上文件中可以使用
/** * */ package com; /** * @author Administrator * */ public class AnimalDoctor { /** * @param args */ public static void main(String[] args) { // test it Dog[] dogs = {new Dog(), new Dog()}; Cat[] cats = {new Cat(), new Cat(), new Cat()}; Bird[] birds = {new Bird()}; AnimalDoctor doc = new AnimalDoctor(); doc.checkAnimals(dogs); // pass the Dog[] doc.checkAnimals(cats); // pass the Cat[] doc.checkAnimals(birds); // pass the Bird[] } public void checkAnimal(Animal a) { a.checkup(); // does not matter which animal subtype each // Animal's overridden checkup() method runs } public void checkAnimals(Animal[] animals) { for (Animal a : animals) { a.checkup(); } } } abstract class Animal { public abstract void checkup(); } class Dog extends Animal { public void checkup() { // implement Dog-specific code System.out.println("Dog checkup"); } } class Cat extends Animal { public void checkup() { // implement Cat-specific code System.out.println("Cat checkup"); } } class Bird extends Animal { public void checkup() { // implement Bird-specific code System.out.println("Bird checkup"); } }
Dog checkup
Dog checkup
Cat checkup
Cat checkup
Cat checkup
Bird checkup
/** * */ package com; import java.util.ArrayList; import java.util.List; /** * @author Administrator * */ public class AnimalDoctorGeneric { // change the argument from Animal[] to ArrayList<Animal> public void checkAnimals(List<? extends Animal> animal) { for (Animal a : animal) { a.checkup(); } } public static void main(String[] args) { // make ArrayLists instead of arrays for Dog, Cat, Bird List<Dog> dogs = new ArrayList<Dog>(); dogs.add(new Dog()); dogs.add(new Dog()); ArrayList<Cat> cats = new ArrayList<Cat>(); cats.add(new Cat()); cats.add(new Cat()); List<Bird> birds = new ArrayList<Bird>(); birds.add(new Bird()); // this code is the same as the Array version AnimalDoctorGeneric doc = new AnimalDoctorGeneric(); // this worked when we used arrays instead of ArrayLists doc.checkAnimals(dogs); // send a List<Dog> doc.checkAnimals(cats); // send a List<Cat> doc.checkAnimals(birds); // send a List<Bird> } }
Dog checkup
Dog checkup
Cat checkup
Cat checkup
Bird checkup
List<? extends Animal> aList = new ArrayList<Dog>();
在上文件中可以使用
相关文章推荐
- Java泛型实例
- 实例分析Java泛型
- Java泛型:<? extends XXXX> 中的? 和 extends 的理解和使用实例
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- java泛型应用实例 - 自定义泛型类,方法
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- java泛型的使用实例
- java泛型程序设计——泛型类的静态上下文中类型变量无效+不能抛出或捕获泛型类的实例
- java泛型介绍及实例
- java泛型应用实例 - 自定义泛型类,方法
- Java泛型映射不同的值类型详解及实例代码
- Java泛型--泛型实例--标识接口的定义
- Java基础学习总结(82)——Java泛型实例教程
- JAVA泛型实例
- Java泛型详解:<T>和Class<T>的使用。泛型类,泛型方法的详细使用实例
- Java泛型实例
- Java基础学习总结(82)——Java泛型实例教程
- Java泛型---泛型方法和泛型类介绍及实例
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)