对泛型和多态的粗浅理解

泛型和多态,Java面向对象的两个重要概念,下面以一个现实中的简单例子描述一下这两个概念:


在舞台上,魔术师在变魔术时,有几个箱子,每个箱子里面放一个动物,

1.刚开始,魔术师处于入门阶段,箱子里面只能放狗,然后魔术师将其变没。现在魔术师就处于面向对象的初级阶段,魔术师只能创建一个对象Dog,这个类有一个方法disappear(),当魔术师调用Dog对象的这个方法时,箱子里的狗变瞬间消失了。


2.魔术师拜师求学某谦门下,苦学两年,段位升级。现在他不仅可以让狗消失了,还可以让猫消失、让狮子消失、让老虎消失、让 大象消失,他可以 创建Tiger对象、Cat对象、Lion对象等等等等。现在怎么办呢,他不能创建所有的动物对象啊,内存不够啊,台上就那么大点地方,不能给没一类动物来一个箱子吧!经过研究,该魔术师发现,所有的对象都有一个方法:disappear(),并且猫、狗、狮子、老虎、大象都是动物啊。好他现在进入“面向对象”进阶阶段:我抽象出一个动物类Animal,这个类里有一个方法disappear,这个箱子里现在可以放任何一个Animal对象,至于到底是狗还是猫还是狮子我不管,只要你继承Animal这个抽象类并且实现了disappear方法,我就可以调用把动物变消失


3.正所谓学习的最高境界是无师自通,该魔术师继续苦学。终于发现,我不仅可以变动物,我还可以让箱子里面的人消失啊!好,现在问题来了,人和动物还是有一些属性差别的,不能让人去实现Animal类啊,另外,我不仅可以让人消失,我还可以让杯子消失、让手机消失、让电脑消失,这怎么办,这么多的类型,难道都是Animal?很显然都继承Animal不符合现实规律。所以我给这个方法一个泛型,<T>disappear,甭管您来什么类型,我统统把您变没,这便是泛型。


以上是本人对泛型的粗浅理解,如有不足,欢迎读者提出

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值