Java实例化对象时的初始化
Posted wxgshareblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实例化对象时的初始化相关的知识,希望对你有一定的参考价值。
在实例化对象时会对对象所在的所有成员变量进行初始化
实例化化对象:类名() 对象名 = new 类名();
这时会调用(顺序如下)
1.父类的非静态代码块
{
......//用花括号包围的内容是非静态代码块
}
2.父类的构造函数
Public 父类名(){
.......//这里是父类的构造函数
}
3.子类的非静态代码块
4.子类的构造函数
会依次调用这几个方法
在这里还会有静态代码块:
Static{
......//这里面的内容就是静态代码块
}
因为静态代码是会先于main方法加载的
所以如果存在静态代码
就会在原先的顺序上最前面加上
1.父类静态代码块
2.静态代码块子类
class Father{
static {
System.out.println("父类静态代码块");
}
{
System.out.println("父类非静态代码块");
}
public Father(){
System.out.println("父类构造函数");
}
}
public class InterfaceTest extends Father{
static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类非静态代码块");
}
public InterfaceTest(){
System.out.println("子类构造函数");
}
public static void main(String[] args) {
System.out.println("main方法");
//
new InterfaceTest();
}
}
输出结果:
父类静态代码块
子类静态代码块
main方法
父类非静态代码块
父类构造函数
子类非静态代码块
子类构造函数
以上是关于Java实例化对象时的初始化的主要内容,如果未能解决你的问题,请参考以下文章