为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Java不允许重写静态方法?

为什么Java不允许重写静态方法?

富国沪深 2019-05-31 12:55:12
为什么Java不允许重写静态方法?为什么不能覆盖静态方法?如果可能的话,请举一个例子。
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

重写依赖于拥有类的实例。多态性的要点是可以对类进行子类化,实现这些子类的对象对于在超类中定义的相同方法(在子类中被重写)具有不同的行为。静态方法不与类的任何实例相关联,因此该概念不适用。

驱动Java设计的两个考虑因素对此产生了影响。一个是对性能的关注:很多人批评Smalltalk太慢(垃圾收集和多态调用是其中的一部分),Java的创建者决心避免这种情况。另一个决定是Java的目标受众是C+开发人员。使静态方法以他们的方式工作对C+程序员来说具有熟悉性的好处,而且速度也非常快,因为不需要等到运行时才确定要调用哪个方法。


查看完整回答
反对 回复 2019-05-31
  • 3 回答
  • 0 关注
  • 1778 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信