首页 新闻 会员 周边 捐助

路过的大神看看,帮我解释下! 谢谢了~!

0
悬赏园豆:10 [已解决问题] 解决于 2016-10-28 10:42

为什么我的主方法里面 th.fun();调用的是子类的fun(); 这中间是存在自动类型转换的啊~! th被转换成ShiYan1类的对象了啊! 怎么不调用ShiYan1中的fun()方法,却用的是Son中的fun()方法呢?

梦再笑的主页 梦再笑 | 初学一级 | 园豆:55
提问于:2016-10-20 23:19
< >
分享
最佳答案
0

这就是java里的多态,th虽然是父类对象的引用,实际上指向的是具体的一个子类对象,你去看看多态知识就知道了

收获园豆:10
爬行的小蚂蚁 | 菜鸟二级 |园豆:212 | 2016-10-21 11:24
其他回答(3)
0

因为 ShiYan1 的 fun 被Son 重写了而已。

长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-10-21 08:55
0

fun1的函数里面的第二句应该调用的是shiyan1中的fun吧

叶帅辉 | 园豆:277 (菜鸟二级) | 2016-10-21 09:28

支持(0) 反对(0) 梦再笑 | 园豆:55 (初学一级) | 2016-10-21 12:20

@梦再笑: 左父右子的声明方式 虽然你声明的是父类  但实际实例化的是子类  所以执行后调用的是子类的函数

而你fun1函数里面第二句是显式调用父类的函数 

支持(0) 反对(0) 叶帅辉 | 园豆:277 (菜鸟二级) | 2016-10-21 18:59
0

你的th本来不就是一个son么?

顾晓北 | 园豆:10893 (专家六级) | 2016-10-21 09:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册