java—为什么在这个程序中首先执行超类—尽管我没有main方法?

gg0vcinb  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(321)

这个问题在这里已经有答案了

java中多级继承中构造函数调用的顺序[重复](4个答案)
为什么我的类会自动从超类继承构造函数[重复](1个答案)
11个月前关门了。
当我运行以下代码时:

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
教师电话
我想知道为什么它先打印超类内容,然后打印下一个子类,然后打印下一个子类,尽管我在faculty子类中有main方法。你能告诉我是怎么追踪的吗?
谢谢您。

8aqjt8rx

8aqjt8rx1#

在处理继承时,总是由父级的类构造函数执行,而不管您的示例是否用于子级。

相关问题