Steve_swg 2017-03-08 08:15 采纳率: 66.7%
浏览 1210
已采纳

关于Java方法的重写和覆盖的代码问题

同一个包中,先编写父类fugai_bike,在里面构造一个public方法,然后再编写一个子类fugai_racingbike,在里面同样构造一个同名的public move方法。然后运行,方法会被覆盖。
然后我更改一下,在两个同名方法前加static,书上说这样方法不能被重写,理论上是再运行子类的方法还是会显示父类的方法输出。然而我运行之后,还是和没加static一样。
到底static有什么用呢?图片图片

  • 写回答

5条回答 默认 最新

  • threenewbee 2017-03-08 08:24
    关注

    所谓覆盖,就是通过父类调用子类的实例方法,调用的是子类的代码,比如

     class A { public void foo() { print("a"); } }
    class B extends A { @override public void foo() { print("b"); } }
    A a = new B();
    b.foo(); //输出b而不是a
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?