package org.example;import java.util.ArrayList;
import java.util.Scanner;/*** Hello world!*/
public class App {public static void main(String[] args) throws InterruptedException {new Child();}
}
class Parent {String name = initName();static {System.out.println("父类静态代码块");}{System.out.println("父类实例代码块");}private String initName() {System.out.println("父类实例变量初始化: name = yang");return "yang";}public Parent() {System.out.println("父类构造方法");}
}class Child extends Parent {static {System.out.println("子类静态代码块");}{System.out.println("子类实例代码块");}int age = initAge();//相当与实例代码块,实例代码块的执行顺序是看实例代码块的先后顺序private int initAge() {System.out.println("子类实例变量初始化: age = 10");return 10;}public Child() {System.out.println("子类构造方法");}
}
结果为:
父类静态代码块
子类静态代码块
父类实例变量初始化: name = yang
父类实例代码块
父类构造方法
子类实例代码块
子类实例变量初始化: age = 10
子类构造方法