猿问

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

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

为什么不能覆盖静态方法?

如果可能的话,请举一个例子。


富国沪深
浏览 1779回答 3
3回答

幕布斯7119047

重写依赖于拥有类的实例。多态性的要点是可以对类进行子类化,实现这些子类的对象对于在超类中定义的相同方法(在子类中被重写)具有不同的行为。静态方法不与类的任何实例相关联,因此该概念不适用。驱动Java设计的两个考虑因素对此产生了影响。一个是对性能的关注:很多人批评Smalltalk太慢(垃圾收集和多态调用是其中的一部分),Java的创建者决心避免这种情况。另一个决定是Java的目标受众是C+开发人员。使静态方法以他们的方式工作对C+程序员来说具有熟悉性的好处,而且速度也非常快,因为不需要等到运行时才确定要调用哪个方法。
随时随地看视频慕课网APP

相关分类

Java
我要回答