浅谈java中的构造类的调用


java继承中的构造类的调用的问题,简而言之就是按照继承树向上走,走到最顶层的类时,开始执行构造器,按照原来追溯的路线向下执行各类的构造器。


有三个类,Creature <-Animal<-Hello

箭头指向为被继承的类

其中Animal中有三个构造器,其中有一个构造器调用了本类中的另一个构造器

Hello中的一个无参构造器调用了直接父类中的一个构造器(使用super)

则构造器的执行顺序是:

道理很好理解:就是按照我上面说的

创建Hello对象时,Hello的构造器中调用了Animal中的两参构造器,而两参的构造器又调用了本类中的一个参数的构造器。顶层类为Creature

(当然,你要说是java.lang.Object也是对的)

这样按照这个顺序回去就是截图所示了。

下面是代码:

class Creature
{
Creature(){
System.out.println("Creture的无参构造器");
}
}
class Animal extends Creature
{


Animal(String name , int age){
this(name);
System.out.println(name +"的年龄是" +age);
}
Animal(String name){
System.out.println("Animal的一个形参" + name);
}
Animal(){}

}
public class  Hello extends Animal  
{
Hello(){
super("你好",30);
System.out.println("Hello的无参构造器");
}
public static void main(String[] args) 
{
//System.out.println("Hello World!");
new Hello();
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值