package com.xch.test02;
/**
* 代码初始化顺序
* 父类静态语句块->子类静态语句块->父类语句块->父类构造函数->子类语句块->子类构造函数
*
* 其中:
* 1、[非静态]语句块也叫构造语句块,用于初始化成员变量,和构造函数一样功能
* 2、静态语句在类加载时执行一次,再次加载不执行
* 3、语句块(构造语句块)先于构造函数执行,每次new实例化对象时都会执行
* 4、静态方法/方法只有在调用时才执行
* 5、父类先于子类执行(先有父亲的方法声明,才有儿子的实现)
*
* @author Chenghe Xu
* @date 2022/10/6 16:16
*/
public class SequenceTest extends SuperSequence {
public static void main(String[] args) {
System.out.println("--------main--------");
new SuperSequence();
System.out.println("--------main--------");
new SequenceTest();
System.out.println("--------main--------");
}
public SequenceTest() {
num=66;
System.out.println("子类构造函数");
}
static {
System.out.println("子类静态语句块");
}
final int num;
{
System.out.println("子类语句块");
}
public static void func3(){
System.out.println("子类静态方法");
}
public void func4(){
System.out.println("子类方法");
}
}
class SuperSequence {
public SuperSequence() {
System.out.println("父类构造函数");
}
static {
System.out.println("父类静态语句块");
}
final int num;
{
num=66;
System.out.println("父类语句块");
}
public static void func1(){
System.out.println("父类静态方法");
}
public void func2(){
System.out.println("父类方法");
}
}
笔试题-代码初始化顺序
于 2023-08-31 17:48:29 首次发布