Java:为什么我们不能重写一个方法使其成为静态的?

标签 java static

为什么我们不能重写非静态方法以使其静态。我在尝试执行此操作时遇到此错误:

This static method cannot hide the instance method from aSuperClass.

非常感谢!

最佳答案

重写意味着在子类中为实例方法提供新的实现,实例方法可能会或可能不会与类实例成员一起使用。覆盖它们并将它们重新定义为静态是不合逻辑的。 static 表示方法与类相关,而不是与类的实例相关。

在 C# 和 Java 中都无法做到这一点。

对于 C#,请查看 override - MSDN

You cannot use the new, static, or virtual modifiers to modify an override method.

关于Java:为什么我们不能重写一个方法使其成为静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16292667/

相关文章:

java - 如何实现静态的项目范围偏好系统?

Java 控制面板不想保存 JRE 更改?

c - 具有相同名称和类型的两个变量,在两个不同的 .c 文件中,使用 gcc 编译

java - 为什么 x 被视为对象(即使它引用数组)也是一个错误?

c++ - 编译器可以优化在堆上分配静态数组的内存管理吗?

Java读取文件并输出到控制台

java - 使用 Spring Data JPA 提交事务

java - 如何在 ContainerRequestFilter 中检索请求的匹配资源

C++ - 将静态映射初始化为私有(private)类成员

scala - 如何存储对 Scala 中一组静态 Java 方法的引用?