[英]why the main method is printing nothing in the sub class?
作为超类“ myfirstclass”的子类的“ mysecondclass”应该继承超类“ 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的新手,我实际上仍然在学习它的基础知识,我也不知道为什么它总是要求我在超级类中添加main方法,尽管我已经在子类中声明了一个(我听说一个主要方法是足够一个Java文件)非常感谢任何帮助,在此先感谢
您不了解该功能
public static void main(String[] args)
在Java Docs中:
public static void关键字意味着Java 1虚拟机(JVM)解释器可以调用程序的main方法来启动程序(公共),而无需创建类的实例(静态),并且程序不会将数据返回到Java VM解释器(void)何时结束。
你有两个
public static void main(String[] args)
在两个不同的班级! 您正在运行或编译使用myfirstclass
类,因此对于这种类型的示例或测试,只有一个Java类是一种很好的做法。
public class Main {
public static void main(String[] args) {
// Call Your classes
}
}
在代码中更加整洁有序!
还有一件事。 对于通过命令行运行,请使用此类命令
java MyApp arg1 arg2
如有疑问,请务必阅读文档!
您有两种方法可以让您的代码按需运行
1)创建2个Java文件。 一个是myfirstclass.java,第二个是mysecondclass.java。 每个人都有自己的主要阶级。 因此,您可以根据需要启动任何主要方法。
2)只需将这2个类保留在同一java文件中。 那么当您运行它时,它将仅在默认情况下在公共类中运行main方法。
只需将public关键字更改为第二类即可。 如果您使用的是在线编译器,则通常会在公共类中寻找main方法。
package myfirstproject;
class myfirstclass {
protected int x = 10;
//getter
public void getX() {
System.out.println(x);
}
}
public class mysecondclass extends myfirstclass {
public static void main(String[] args) {
mysecondclass mysecondobject = new mysecondclass();
mysecondobject.getX(); //printx X
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.