静态初始化块 > 初始化块 > 构造器
父类 > 子类
综合顺序:
(1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法)
(2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 )
(3) 父类非静态代码块( 包括非静态初始化块,非静态属性 )
(4) 父类构造函数
(5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 )
(6) 子类构造函数
age1:
public class Test extends Solution {
public static void main(String[] args) {
System.out.println("7.开始");
new Solution1();
new Solution();
System.out.println("8.结束");
}
}
class Solution{
static {
System.out.println("1.静态代码块");
}
{
System.out.println("2.代码块");
}
public Solution(){
System.out.println("3.构造方法");
}
}
class Solution1 extends Solution{
static {
System.out.println("4.静态代码块");
}
{
System.out.println("5.代码块");
}
public Solution1(){
System.out.println("6.构造方法");
}
}
age2:
public class Test extends Solution {
static {
System.out.println("4静态代码块");
}
{
System.out.println("5代码块");
}
public Test(){
System.out.println("6 构造方法");
}
public static void main(String[] args) {
System.out.println("7.开始");
new Test();
new Solution();
System.out.println("8.结束");
}
}
class Solution{
static {
System.out.println("1.静态代码块");
}
{
System.out.println("2.代码块");
}
public Solution(){
System.out.println("3.构造方法");
}
}