为什么不能覆盖静态方法?
如果可能,请举个例子。
最佳答案
覆盖取决于拥有一个类的实例。多态性的要点是您可以子类化一个类,并且实现这些子类的对象对于父类(super class)中定义的相同方法(并在子类中被覆盖)具有不同的行为。静态方法不与类的任何实例相关联,因此该概念不适用。
插入 Java 设计的有两个考虑因素影响了这一点。一个是对性能的担忧:有很多批评 Smalltalk 太慢(垃圾收集和多态调用是其中的一部分),Java 的创建者决心避免这种情况。另一个决定是 Java 的目标受众是 C++ 开发人员。让静态方法以它们的方式工作有利于 C++ 程序员熟悉,而且速度也非常快,因为无需等到运行时才确定要调用哪个方法。
关于java - 为什么Java不允许覆盖静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2223386/