【发布时间】:2019-10-14 09:33:39
【问题描述】:
“mysecondclass”是超类“myfirstclass”的子类 应该继承超类“myfirstclass”的所有属性 它应该输出 x 的值,但它什么也不打印
package myfirstproject;
public class myfirstclass {
protected int x = 10;
//getter
public void getX() {
System.out.println(x);
}
public static void main(String[] args) {
/* it asked me to define this main method here although it's useless in this situation
*/
}
}
class mysecondclass extends myfirstclass {
public static void main(String[] args) {
mysecondclass mysecondobject = new mysecondclass();
mysecondobject.getX(); //prints nothing
}
}
我真的是 Java 新手,实际上我还在学习它的基础知识 我也不知道为什么它总是要求我在超类中添加主方法,尽管我已经在子类中声明了一个(我听说一个主方法对于一个 java 文件就足够了) 任何帮助都非常感谢,在此先感谢
【问题讨论】:
-
你是怎么运行这个的?
-
在Java中,通常我们只需要一个main方法作为公共类的入口,类名也是文件名。所以你只需要将你的主要方法从子类移动到父类。你会没事的。
-
@yuanqingfei 您可以在任何您喜欢的类中定义主要方法,只要它不是内部类(这两个类都不是)。
-
mysecondclass 中的 main 方法是静态的,因此它实际上并不是用于覆盖第一类中的(静态)方法。当您说“它总是要求我添加 main 方法”时,是谁?或者它是什么?
-
@AndyTurner 我知道,我说
ususally,在他的例子中,你可以看到只有一个公共类。这意味着它是主要课程。而当你尝试调用 main 方法时,它只会找到主类的 main 方法。至于同一个 java 文件中的所有其他类,它们都没有用。
标签: java