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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE8基础 子类初始化时有 父子类分层初始化的特点相关的知识,希望对你有一定的参考价值。

 

 


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

 

代码:

/*	

	A:一个类的初始化过程
			成员变量的初始化
			默认初始化
			显示初始化
			构造方法初始化
	B:子父类的初始化(分层初始化)
			先进行父类初始化,然后进行子类初始化。
					
*/

class Test {
	public Test() {
		System.out.println("Test类初始化");
	}
}

class Father {
	//成员变量
	Test t = new Test();
	
	//构造函数
	public Father() {
		System.out.println("Father类初始化");
	}
}

class Son extends Father {
	//成员变量
	Test t = new Test();
	
	//构造函数
	public Son() {
		super();
		/*
			子类中构造方法有super()
			初始化的时候,不是按照函数运行完成 返回执行下一行 的模式,
			而是按照分层初始化进行的。
			它仅仅表示要先初始化父类数据,再初始化子类数据。
		*/
		/*
			看到程序输出的结果,我表示 惊喜和意外。因为虽然不知道结果是什么,但想不到结果会是这个。
			还是要看源代码或者有老师带。新手两眼一抹黑,太难前进了。
		*/
		
		System.out.println("Son类初始化");
	}
}

class Demo {
	public static void main(String[] args) {
		new Son();
	}
}

 

结果展示:

技术分享

 

 


Java优秀,值得学习。
学习资源:itcast视频库。如果您有公开的资源,也可以分享给我,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是给最苦没认真。
如果您觉得博文有可以改进的地方,留言即可。
注:我是新手而且精力有限,分享的内容不是完美的。所以博文仅可用于参考,禁止用于其他用途。







以上是关于JavaSE8基础 子类初始化时有 父子类分层初始化的特点的主要内容,如果未能解决你的问题,请参考以下文章

java父子类的初始化顺序--个人总结

C++--继承中的构造与析构父子间的冲突

一文详解:Java中父子类静态块构造块构造方法成员变量之间的初始化先后顺序与执行先后顺序

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

父子间兼容性

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