我将以下代码作为作业的一部分
class Base {
public static void main(String[] args){
System.out.println("Hello World");
}
}
public class Factorial extends Base{
}
我的任务是运行代码,然后解释输出。文件的名称是 Factorial.java 。代码运行没有问题,打印Hello World对我来说是令人惊讶的。在输入代码之前,我认为它不会编译,因为正在扩展的父类应该在另一个文件中,但现在我不太确定。非常感谢soome澄清。
答案 0 :(得分:12)
Java允许您在单个.java
文件中定义多个类,条件是您最多可以 一个public
类如果,那么该公共类的名称必须与.java
文件的名称匹配。在您的情况下,声明为public
的类为Factorial
,因此您的文件名必须为Factorial.java
。
继承在这里正常工作,public static void main()
由Factorial
继承,这就是您在执行java Factorial
时看到输出的原因。
答案 1 :(得分:1)
您可以在同一个文件中拥有多个类,但只有一个公共类,因为Base
不是公共类,但不是推荐的做法。