JavaSE8基础 父子类中都有静态代码块与构造代码块,执行顺序的简单示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE8基础 父子类中都有静态代码块与构造代码块,执行顺序的简单示例相关的知识,希望对你有一定的参考价值。



    os :windows7 x64
    jdk:jdk-8u131-windows-x64
    ide:Eclipse Oxygen Release (4.7.0)
    
    
代码:

//父类
class Father {
	//静态代码块
	static {
		System.out.println("父类的静态代码块");
	}
	
	//构造代码块
	{
		System.out.println("父类的构造代码块");
	}

	public Father() {
		System.out.println("父类的构造函数");
	}
}

class Son extends Father {
	
	//静态代码块
	static {
		System.out.println("子类的静态代码块");
	}
	
	//构造代码块
	{
		System.out.println("子类的构造代码块");
	}

	public Son() {
		//默认会去调用 父类的无参构造函数
		System.out.println("子类的构造函数");
	}

}

class Demo {
	public static void main(String[] args) {
		//这么多块,谁先执行呢?
		Son s1 = new Son();	
		
		/*
		*  类加载器主管类的加载工作,静态代码块会在类的加载时 运行。
		*  类加载器发现 Son作为子类,存在父类,所以会先去加载父类,所以父类的静态代码块会先运行。
		*  加载完父类之后,才会回过来加载子类。所以,子类的静态代码块会后运行。
		*  仅供参考...
		*/
		
	}
}

 


结果:
 技术分享

 

       


Java优秀,值得学习。
学习资源:itcast视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
如果您觉得博文有可以改进的地方,留言即可。













以上是关于JavaSE8基础 父子类中都有静态代码块与构造代码块,执行顺序的简单示例的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE8基础 抽象类中可以有 静态方法,直接调用

JavaSE8基础 子类中所有的构造方法默认访问父类中无参构造方法

JavaSE8基础 抽象类中可以有 普通的成员变量和构造方法

JavaSE8基础 子类初始化时有 父子类分层初始化的特点

JavaSE8基础 构造代码块简单示例

JavaSE8基础 静态代码块 简单示例