明晰----<泛型>---在Java程序中的作用


前言

明晰Java泛型作用!

一、泛型是什么?

泛型:是JDK5.0后推出的新特性,主要目的是统一集合中存储的元素类型解决了引用对象使用子类方法大量向下转型的问题。
特点:在程序编译阶段起作用

缺点:因为泛型确定了存储类型,集合中就只能存储泛型所声明的类型,所以泛型导致集合中存储的元素缺乏多样性(不过无伤大雅,在工作中一般情况下,集合中存储的类型都是统一的)

二、使用步骤(代码)

public class Test01 {
    public static void main(String[] args) {
        //使用泛型
        List<Animal> myList = new LinkedList<>();
        Cat c = new Cat();
        Dog d = new Dog();

        myList.add(c);
        myList.add(d);

        //获取迭代器
        Iterator<Animal> it = myList.iterator();
        while (it.hasNext()) {
            Animal a = it.next();
            //调用子类型特有的方法还是需要向下转换
            if (a instanceof Cat) {
                Cat x = (Cat)a;
                x.catchMouse();
            } else { a.doSome(); }
        }

    }
}

class Animal{
    public void doSome(){
        System.out.println("父类:泛型无需向下转型,除非是子类");
    }
}

class Cat extends Animal{
    public void catchMouse(){
        System.out.println("子类:猫抓老鼠!");
    }
}
class Dog extends Animal{}

代码运行结果

结论:父类泛型无需向下转型,除非是子类
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值