多态问题

今天在学数据结构的时候看马士兵老师的视频,说到集合框架的问题

他讲c作为一个collection的引用,实际类型是Arraylist

c不可以访问arraylist中特有的方法,这里我有疑问,所以敲了如下的代码


结果很明确,在son中重写了father的print方法,所以输出的是“I an the son”;

但是要调用son中特有的p方法时,系统报错,表示a对象中没有此方法



所以,用父类的引用的好处主要是为了方便以后更改对象。

就好比father有两个son,这俩儿子都是对象,一个帅,一个丑


father ugly = new son(); // 这个是丑的

father diy = new diy(); // 备用人,自定义的人

son handsome = new son(); // 这个是帅的


有一天,father觉得ugly这个太丑了,就直接把ugly = new diy();

重新换个,弄成帅的。

但是handsome这个儿子一辈子也变不了,出来的时候就已经明确是son类型的了。


唯一的缺点就是ugly这个丑儿子不能使用son类中特有的方法。

但是为了以后的改变,也没办法。


所以啊,人生来不平等,人丑就该多读书,我们可没有可以更换的备用人,人生路走过去就再也不会回来了



本人小白,若有问题,欢迎大神随时指点.......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值