gpt4 book ai didi

java - 为什么我不能在不使用 main 方法的引用作为前缀的情况下调用继承的公共(public)方法?

转载 作者:行者123 更新时间:2023-12-01 17:01:44 25 4
gpt4 key购买 nike

我在同一个包中有以下类:

class Roo {
public String doRooThings()
{
return "Rooing!";
}
}

class Cloo extends Roo {
public static void main(String[] args)
{
System.out.println(doRooThings());
}
}

执行此命令时,我收到无法从 Roo 类型对非静态方法 doRooThings() 进行静态引用错误。

但是我可以从子类中的公共(public)方法调用 doRooThings() 方法(无需在其前面添加引用)如下所示:

class Cloo extends Roo {
public void testRoo()
{
System.out.println(doRooThings());
}
public static void main(String[] args)
{
new Cloo().testRoo();
}
}

有人可以告诉我这是如何工作的吗?

最佳答案

因为 main() 方法在 static 上下文中运行。静态意味着您没有该类的有效实例。这意味着 Java 不知道在哪个实例上调用该方法...

阅读一些基础知识,例如 this explanation .

关于java - 为什么我不能在不使用 main 方法的引用作为前缀的情况下调用继承的公共(public)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267919/

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