哈哈哈123457
2017-12-05 15:44
采纳率: 100%
浏览 2.2k
已采纳

java 创建了父类对象 调用父类方法 为什么最后子类方法也会被优先调用?

图片说明
图片说明
为什么子类方法也被调用了 而且还是优先父类方法调用的!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • nicodeme 2017-12-06 01:26
    已采纳

    这完全不合理啊。害的我还测试可一遍,没有你那种情况。。图片说明

    点赞 评论
  • blownewbee 2017-12-05 15:54

    这个原理说来话长,但是其实我们从程序员的角度,把Java当成一个实用的工具看。
    只有子类能够覆盖基类,并且改写方法,这样的编程语言的设计才“有用”。好比冰箱为什么能制冷说来话长,但是显然,只有能制冷的冰箱才有用。

    有什么用?
    程序员A设计好一个算法的框架主体,比如一个排序算法。他为了让这个程序通用,如何排序的代码没法写出来(有人要按照时间排序,有人按照id排序,有人要倒过来排序,有人要多个条件排序……)
    他怎么做?他定义一个叫comparor的基类,以及compare的方法,这个方法传入两个值,返回比较结果。他肯定在主程序里只能调用这个基类的compare方法,但是把comparor这个类型作为参数传进来。
    程序员B C D来调用A的排序算法,怎么做?他们从comparor继承,重写compare方法,有人比较id,有人比较日期……,然后作为sort方法的参数,把自己写好的派生类对象实例传入。

    现在你想,如果程序要正确运行,应该调用派生类的还是基类的。哪个才“有用”。

    点赞 评论
  • 小猴子的技术笔记 2017-12-05 16:29

    子类继承父类会优先调用父类

    点赞 评论
  • ipple1986 2017-12-06 05:13

    子类继承父类会优先调用父类 图片不清楚,不完整

    点赞 评论

相关推荐 更多相似问题