【发布时间】:2023-12-26 06:17:02
【问题描述】:
我们不能覆盖静态方法(至少在 Java 中)。
如果我想重写继承的静态方法,我可以通过嵌套调用已重写的父类的非静态方法来实现吗?
class A {
.
.
static func(args) {..M(args)..}
.
.
<Type> M(args) {...}
.
.
}
class B extends A {
.
.
@Override
<Type> M(args) {...}
.
.
}
或者,这段代码能否改变func的功能?
【问题讨论】:
-
重载静态方法当然是可能的,而覆盖是不可能的——你让它们切换了。但即便如此,最好的解决方法是为您想要尝试的内容编写代码并查看会发生什么,或者至少共享特定代码而不是代码描述。
-
对,只需向我们展示您想尝试的代码即可。基本上你必须在这里从头开始实现每个方法,没有办法“自动”引用静态方法。这就是为什么它们是“静态的”。
标签: inheritance methods static overriding non-static