java隐式调用_Java中父类构造器的隐式调用和显式调用

在 Java 中,创建对象时会先调用父类的非静态初始化块和构造器,然后执行本类的初始化。父类的构造器调用可以是隐式的(默认调用无参构造器)或通过 super 显式指定。子类构造器可以通过 this 调用来执行本类中其他构造器。文章通过示例代码详细阐述了这一过程。
摘要由CSDN通过智能技术生成

当创建任何 Java 对象时,程序总会先依次调用每个父类非静态初始化块、父类构造器(总是从 Object 开始,因为Java 程序里所有类的最终父类都是 java.lang.Object 类)执行初始化,最后才调用本类的非静态初始化块、构造器执行初始化。

当调用某个类的构造器来创建Java 对象时,系统总会先调用父类的非静态初始化块进行初始化。这个调用是隐式执行的,而且父类的静态初始化块总是会被执行。接着会调用父类的一个或多个构造器执行初始化,这个调用既可以是通过 super 进行显式调用,也可以是隐式调用。

当所有父类的非静态初始化块、构造器依次调用完成后,系统调用本类的非静态初始化块、构造器执行初始化,最后返回本类的实例。 下面程序演示了创建Java 对象时的初始化过程。

class Creature

{

{

System.out.println("Creature 的非静态初始化块");

}

//下面定义两个构造器

public Creature()

{

System.out.println("Creature 无参数的构造器");

}

public Creature(String name)

{

//使用 this 调用另一个重载、无参数的构造器

this();

System.out.println("Creature 带有 name参数的构造器,name参数:"

+ name);

}

}

class Animal extends Creature<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值