关于静态方法重写问题

关于静态方法重写问题

静态方法和最终方法不能被重写;但静态方法在子类中可以通过隐藏父类方法的方式重新实现!

什么叫做隐藏父类,就是在子类中新定义了一个和父类一样的属性,那么父类这个属性就可以被看成隐藏。

我想说的是:如果子类中定义了一个和父类一样的方法,那这不就是方法的重写吗?那 隐藏和 重写有什么关系,或者说我有哪里理解错误的地方呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

当子类中定义了与父类相同的静态变量、实例变量或静态方法,并不会覆盖父类,而是同时存在,不过父类对应的静态变量、实例变量或静态方法被自动隐藏。

当子类中定义了与父类相同的实例方法,则会覆盖父类对应的实例方法,这称为重写。

两者有本质不同


  • jia_蛙 提问者 #1
    重写:是在有继承关系的子类中,定义了与父类相同的实例方法。这个时候会覆盖父类对应的实例方法。 满足重写的时候就是覆盖,但是子类定义了其他与父类同类型同名的属性,但不满足重写的要求时,只会隐藏父类,而不是覆盖是吧,如果想用父类的只需要用super.变量名或者方法名 。 可以这样理解吗
    2019-07-30 14:38:04
  • 好帮手慕阿满 回复 提问者 jia_蛙 #2
    是的,可以这么理解。祝:学习愉快~
    2019-07-30 16:46:01
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师