📅  最后修改于: 2023-12-03 15:42:16.804000             🧑  作者: Mango
以下是一段Java代码的执行结果:
class superclass
{
superclass()
{
System.out.println("I am superclass");
}
}
public class subclass extends superclass
{
subclass()
{
System.out.println("I am subclass");
}
public static void main(String args[])
{
subclass x=new subclass();
}
}
输出结果为:
I am superclass
I am subclass
请问,如果在 subclass 中不写任何构造函数,是否可以得到同样的输出结果?
我们可以发现,在输出对应的提示语句之前,都有构造函数进行了一些操作。在Java中,甚至没有显式声明构造函数时,编译器也会自动生成一个默认的无参构造函数,其代码会自动插入到当前类中,所以即便没有显式声明构造函数,也能够保证代码的正确性。
因此,不写任何构造函数时,也一定能够得到同样的输出结果。
```java
class superclass
{
superclass()
{
System.out.println("I am superclass");
}
}
public class subclass extends superclass
{
// 如果在 subclass 中不写任何构造函数,也能够得到同样的输出结果,因为会自动根据需要生成默认的无参构造函数。
public static void main(String args[])
{
subclass x=new subclass();
}
}
输出结果为:
I am superclass
I am subclass