java继承构造函数的调用_JAVA继承中的构造器调用

关于继承中的构造器调用和调用顺序,做了个小测试,如下:class People {

String name;

//2,第二步,调用此无参构造器

public People() {

System.out.println("、父类的无参构造器");

}

//5,调用此有参构造器

public People(String name) {

System.out.println("、父类的有参构造器");

this.name = name;

}

}

class Child extends People {

People father;

public Child() {

System.out.println("、子类的无参构造器");

}

//3,创建使历史传递了参数"mike",所以第三步会调用子类有参构造器

public Child(String name) {

System.out.println("、子类的有参构造器");

this.name = name;

//4,此处创建了People的实例并传递了参数,所以会调用父类有参构造器

father = new People(name + ":F");

}

public static void main(String[] args) {

System.out.println("子类创建实例时的构造函数调用顺序:");

new Child("mike");//1,创建子类实例,由于Child类没有显示调用People的构造器,所以默认调用People的无参构造器

//  new Child();//不传递参数,则第一步调用父类无参构造器,然后调用自身的无参构造器。

}

}

当前状态下执行main方法,输出如下内容:

子类创建实例时的构造函数调用顺序:

、父类的无参构造器

、子类的有参构造器

、父类的有参构造器

若子类没有显示调用父类构造器,当子类创建实例时 ,会调用父类的无参构造器,若父类没有无参构造器,则会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值