黑马程序员技术交流社区

标题: 泛型限定的一种体现 [打印本页]

作者: 小穿钉    时间: 2015-11-17 14:51
标题: 泛型限定的一种体现
package cn.generic;

import java.util.ArrayList;
import java.util.Iterator;

/**
*
* 泛型限定的第一种体现
* @author Administrator
*
*/
public class GenericDemo_3 {

        public static void main(String[] args) {
                //创建集合对象,并确定了泛型类型,左右类型要一致,否则会报错
                ArrayList<Student> al = new ArrayList<Student>();
                //向集合中添加元素       
                al.add(new Student("李红",16));
                al.add(new Student("霓裳",18));
               
                //创建集合对象,并确定了泛型类型
                ArrayList<Teacher> al1 = new ArrayList<Teacher>();
                //向集合中添加元素
                al1.add(new Teacher("李虹霞",38));
                al1.add(new Teacher("李伯河",36));
               
                //调用方法打印限定的类型元素
                printCollection(al);
                printCollection(al1);
               
        }
        /**
         * 调用迭代器,打印集合中的元素
         * @param al
         */
        private static void printCollection(ArrayList<? extends Person> al) {//泛型限定的一种体现
                //遍历集合,获取所有元素
                Iterator<? extends Person> it = al.iterator();
                while(it.hasNext()){
                        Person p = it.next();
                        System.out.println("姓名:"+p.getName()+"  年龄:"+p.getAge());
                }
        }

}
/**
* 创建一个Person类(父类)
* @author Administrator
*
*/
class Person{
        //私有成员变量
        private String name;
        private int age;
        //构造方法初始化对象
        public Person(String name, int age) {
                super();
                this.name = name;
                this.age = age;
        }
        //set  get  方法
        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;
        }
       
}
/**
* 创建学生类(子类)
* @author Administrator
*
*/
class Student extends Person{
        //构造函数初始化对象
        public Student(String name, int age) {
                super(name, age);
               
        }       
}

/**
* 创建一个老师类(子类)
* @author Administrator
*
*/
class Teacher extends Person{
        //构造函数初始化对象
        public Teacher(String name, int age) {
                super(name, age);
               
        }

       
}


作者: yaoyeqing    时间: 2015-11-17 18:54
学习了,顶一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2