您的位置:首页 > 编程语言 > Java开发

JAVA继承中的构造器调用

2017-05-06 22:55 190 查看
关于继承中的构造器调用和调用顺序,做了个小测试,如下:
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方法,输出如下内容:
子类创建实例时的构造函数调用顺序:
、父类的无参构造器
、子类的有参构造器
、父类的有参构造器

若子类没有显示调用父类构造器,当子类创建实例时 ,会调用父类的无参构造器,若父类没有无参构造器,则会报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JAVA 构造器