如果本文对您有所帮助,可以点一下赞👍
本文只是学习笔记,欢迎指错,转载标明出处
1、理论知识
①类加载过程:类中的 静态代码(包括静态属性赋值和静态代码块)最先执行,先执行父类中 静态代码 再 到子类 的静态代码。
主要:静态方法不执行,只有被调用才执行
② 类加载之后,顺序执行main方法
③实例化子类对象的时候,先实例化父类
④实例化一个类对象的时候,先执行 属性赋值和代码块(按代码书写的前后顺序),最后执行构造方法。
2、代码实践
Father.class
public class Father {
Father(){
System.out.println("父类构造方法");
}
public static int test2(){
System.out.println("1");
return 1;
}
{
System.out.println("2");
}
static{
System.out.println("3");
}
private int i =test();
private static int j= method();
public static int test(){
System.out.println("4");
return 1;
}
public static int method(){
System.out.println("5");
return 1;
}
}
Son.java
public class Son extends Father {
private int i =test();
private static int j= method();
static{
System.out.println("6");
}
Son(){
System.out.println("子类构造方法");
}
{
System.out.println("7");
}
public static int test(){
System.out.println("8");
return 1;
}
public static int method(){
System.out.println("9");
return 1;
}
public static void main(String[] args) {
System.out.println("main方法输出");
Son s=new Son();
}
}