gpt4 book ai didi

java - 父类调用子类的静态方法

转载 作者:行者123 更新时间:2023-12-02 07:55:42 25 4
gpt4 key购买 nike

这是一个奇怪的问题,但我想知道是否有一种方法可以在子类中“覆盖”父类的静态方法并从父类调用该子类的静态方法。

它看起来像这样

public class parentFoo {
public static void <T extends parentFoo> printFoo () {
T.printFoo();
}
}

public class childFoo extends parentFoo {
public static void printFoo() {
System.out.println("Foo");
}
}

所以你可以在你的代码中做这样的事情

 //print out "Foo"
parentFoo.<childFoo>printFoo();

这对我不起作用,但我想知道是否有某种方法可以实现这一点。现在我遇到堆栈溢出,因为它只调用父类的 printFoo 方法。

最佳答案

您不能覆盖静态方法。但是,您可以定义同名的静态方法。如果这样做,那么您可以指定从类类型中调用哪一个

ChildFoo.printFoo(); // call child foo
ParentFoo.printFoo(); // call parent foo

ParentFoo foo1 = new ChildFoo();
foo1.printFoo(); // ParentFoo still called because of type of reference foo1 not its value

ChildFoo foo2 = new ChildFoo();
foo2.printFoo(); // ChildFoo called because of type of reference foo2 not its value

关于java - 父类调用子类的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com