继承中代码的执行顺序

涉及:静态初始化代码块、构造代码块、构造方法

public class HelloB extends HelloA 
{
          
   
 public HelloB()
 {
          
   
 }
 {
          
   
     System.out.println("I’m B class");
 }
 static
 {
          
   
     System.out.println("static B");
 }
 public static void main(String[] args)
 {
          
   
     new HelloB();
 }
}
class HelloA
{
          
   
 public HelloA()
 {
          
   
 }
 {
          
   
     System.out.println("I’m A class");
 }
 static
 {
          
   
     System.out.println("static A");
 }
}

当涉及到继承时,按照如下顺序执行:

  1. 执行父类的静态代码块
  2. 执行子类的静态代码块
  3. 执行父类的构造代码块
  4. 执行父类的构造函数
  5. 执行子类的构造代码块
  6. 执行子类的构造函数
  7. 在执行子类中的其他代码段

答案是: static A static B I’m A class I’m B class

经验分享 程序员 微信小程序 职场和发展