当我运行以下代码时:
public class Employee extends Person
{
public Employee()
{
this("Employee call 1");
System.out.println("Employee call 2");
}
public Employee(String s)
{
System.out.println(s);
}
}
public class Person
{
public Person()
{
System.out.println("Person call");
}
}
public class Faculty extends Employee
{
public static void main(String[] args)
{
new Faculty();
}
public Faculty()
{
System.out.println("Faculty call");
}
}
我得到以下输出:
来电
员工通话 1
员工通话 2
教师电话
我想知道为什么它打印父类(super class)内容,然后打印下一个子类,然后打印下一个子类,尽管我在Faculty子类中有main方法。你能告诉我它是如何追踪的吗?
谢谢。
最佳答案
使用继承时,无论您的实例是否用于子类,始终都会执行父类的类构造函数。
关于java - 为什么父类(super class)在这个程序中首先被执行 - 尽管我没有 main 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60212640/