以下是我的代码集,文件名为State.java
class State
{
static String country;
static String capital;
State() //Constructor
{
country = "America's";
capital = "Washington D.C";
}
static void display()
{
System.out.println(capital + " " + "is" + " " + country + " " +"capital." );
}
}
class Place extends State
{
static void display()
{
System.out.println("Capital is Washington D.C.");
}
public static void main(String[] args)
{
State st = new State();
Place pl = new Place();
st.display();
pl.display();
st = pl;
}
}
Error: Could not find or load main class State$Place
在我尝试运行时显示。
我的主要目的是显示 Capital is Washington D.C.
而不是capital + " " + "is" + " " + country + " " +"capital."
。我也使用过构造函数。
我正在使用eclipse IDE来执行我的程序。
答案 0 :(得分:0)
文件名是State.java
由于您的文件名为State.java
,您的主要方法应该在课程State
中,而不应在Place
课程中
正如您在评论中指出要调用类display
的{{1}}方法一样,有两种方法可以实现。
1 - 从主要方法
中删除Place
2 - 使用多态作为类st.display();
扩展了类Place
如果使用多态,您的State
应该是
main method
答案 1 :(得分:0)
刚刚做了一个快速测试,与我的评论相反,似乎允许静态内部类包含一个main方法。但是,代码的问题在于,仅静态内部类允许包含静态方法(请参阅JLS)。由于Place
不是静态内部类,因此它不能具有静态的主方法。
除此之外,您可能应该将main方法完全移动到外部类或其他类(请参阅cricket的注释)。