下面我有在同一个包中的类:为什么我无法使用主方法的引用调用继承的公共方法?
class Roo {
public String doRooThings()
{
return "Rooing!";
}
}
class Cloo extends Roo {
public static void main(String[] args)
{
System.out.println(doRooThings());
}
}
我得到不能袋鼠错误在执行这个使静态参考来自类型的非静态方法doRooThings()。
但我可以调用doRooThings()方法(而无需与参考前言吧)从公共方法在子类中像下面:
class Cloo extends Roo {
public void testRoo()
{
System.out.println(doRooThings());
}
public static void main(String[] args)
{
new Cloo().testRoo();
}
}
任何人都可以请让我知道这是如何工作的?
你确实意识到你在第二种情况下创建了一个引用。 “新Cloo()”。你的陈述本身“不必在前言中加引用”在这里是不正确的。也许你的意思是别的? – maheeka 2014-12-03 09:29:38
你的main()是静态的,这意味着它不能访问任何实例变量。也许阅读这将有助于解释什么静态意味着:https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html – kha 2014-12-03 09:30:21