父类和子类加载顺序-面试被问过一次
Posted 醉酒的小男人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父类和子类加载顺序-面试被问过一次相关的知识,希望对你有一定的参考价值。
总结:先静态后非静态,先父类后子类
-父类静态变量、静态代码块(若有多个按代码先后顺序执行)
-子类静态变量、静态代码块(若有多个按代码先后顺序执行)
-父类非静态变量、非静态代码块(若有多个按代码先后顺序执行)
-父类构造函数
-子类非静态变量、非静态代码块(若有多个按代码先后顺序执行)
-子类构造函数
package classloader;
public class Parent {
public static int i = 10;
private int j = 15;
static {
System.out.println("父类-静态代码块,无静态变量");
}
static {
i = i + 100;
System.out.println("父类-静态代码块,有静态变量,i="+i);
}
{
System.out.println("父类-代码块,无静态变量");
}
{
j = j + 200;
System.out.println("父类-代码块,有静态变量,j="+j);
}
public Parent(){
System.out.println("父类-构造方法");
}
}
package classloader;
public class Child extends Parent {
public static int m = 26;
private int n = 37;
static {
System.out.println("子类-静态代码块,无静态变量");
}
static {
m = m + 300;
System.out.println("子类-静态代码块,有静态变量,m="+m);
}
{
System.out.println("子类-代码块,无静态变量");
}
{
n = n + 400;
System.out.println("子类-代码块,有静态变量,n="+n);
}
public Child(){
System.out.println("子类-构造方法");
}
public static void main(String[] args) {
Child child = new Child();
}
}
以上是关于父类和子类加载顺序-面试被问过一次的主要内容,如果未能解决你的问题,请参考以下文章