14.静态变量,静态代码块,非静态变量,非静态代码块的执行顺序
此代码借鉴于博客园博主formcc。
原博文:https://www.cnblogs.com/jj-chenjunjie/p/5331107.html
package com.liubj.project03;
/**
* 静态变量,静态代码块,非静态变量,非静态代码块的执行顺序
*
* @author liubaojun
*
*/
public class Run {
public static void main(String[] args) {
new Child();
}
}
/**
* Foo类用于打印变量
*
* @author liubaojun
*
*/
class Foo {
public Foo(String str) {
System.out.println(str);
}
}
/**
* Parent父类
*
* @author liubaojun
*
*/
class Parent {
static Foo Foo = new Foo("父类的静态参数");
Foo foo = new Foo("父类的非静态参数");
static {
System.out.println("父类的静态代码块");
}
{
System.out.println("父类的非静态代码块");
}
//构造方法
public Parent(){
System.out.println("父类的构造方法");
}
}
class Child extends Parent{
static Foo Foo = new Foo("子类的静态参数");
Foo foo = new Foo("子类的非静态参数");
static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类非静态代码块");
}
//构造方法
public Child(){
System.out.println("子类构造方法");
}
}
运行结果: