包含main方法的Java Extending类

use*_*888 6 java

我将以下代码作为作业的一部分

class Base {
  public static void main(String[] args){
    System.out.println("Hello World");
  }
}

public class Factorial extends Base{


}
Run Code Online (Sandbox Code Playgroud)

我的任务是运行代码,然后解释输出.文件的名称是Factorial.java.代码运行没有问题,打印Hello World对我来说是令人惊讶的.在输入代码之前,我认为它不会编译,因为正在扩展的父类应该在另一个文件中,但现在我不太确定.非常感谢soome澄清.

Rav*_*yal 12

Java允许您在单个中定义多个类.java与你具备条件的文件最多一个public,如果你这样做,然后是公共类的名称必须与的名称相匹配.java的文件.在您的情况下,声明的类publicFactorial,因此您的文件名必须是Factorial.java.

继承在这里工作像往常一样与public static void main()被继承了Factorial这就是为什么你看到在执行你的输出java Factorial.