a1670131049 2017-10-10 06:13 采纳率: 50%
浏览 1364
已采纳

java多态和继承中,方法的调用

  1. class Fu{ void show() { System.out.println("Fu"); } } class Zi extends Fu{ void show() { System.out.println("Zi"); } } public class Dream { public static void main(String args[]) { Fu f=new Zi(); f.show(); } } f调用show()方法,输出的结果是 “Zi”,因为覆盖了,可是把Fu类的show()方法删除为什么会报错?既然多态了,f指向Zi类,那么不可以去Zi类中找show()方法吗?
  • 写回答

7条回答 默认 最新

  • legendCoder 2017-10-10 07:15
    关注

    Fu f=new Zi()这句话是父类的变量指向子类实例对象。但是f始终是父类类型的一个变量,父类中没有的方法是不能调用的。之所以f.show()显示的是zi,是因为子类show方法覆盖了父类show方法,相当于重写了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 用matlab求微分方程初值问题
  • ¥15 vscode下编写第三方库opencv与pcl代码时没有代码提示
  • ¥15 能够跑通不报错,如何解决?(标签-matlab)
  • ¥15 MOS在RDS较大,频率高时开关波形异常
  • ¥15 SCENIC分析报错求解答
  • ¥15 ceph初始化mon不成功 下图不报错 这个是什么元
  • ¥15 数学建模数学建模少ai
  • ¥35 这个等效电路图是什么意思?(答疑)(有没有不是chat的,我就是在chat搜不到才来问的,chat还开了VIP)(可以追加酬金)
  • ¥200 基于同花顺supermind的量化策略脚本编辑
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?