a1670131049 2017-10-09 22: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-09 23:15
    关注

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

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

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部