在Java继承中,子类调用哪个父类构造函数?

2026-06-11 14:407阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计401个文字,预计阅读时间需要2分钟。

在Java继承中,子类调用哪个父类构造函数?

Java的继承类中调用哪个构造函数 + 编写者:李国强 + 背景原因:求证:如果父类有多个构造函数,子类调用哪个。 + 初步结论:Java的继承类中,如果子类没有显式调用父类的构造函数,默认调用无参构造函数;如果子类需要调用特定的构造函数,则必须显式调用。


java的继承类中调用哪个构造函数

​​编者:李国帅​​


背景原因:

求证:如果父类有多个构造函数,子类调用哪一个。

初步结论:

java的继承类如果定义新的构造函数,且没有对应的父类构造函数,会调用父类的空参构造函数。

publicclassHello {
class a {
a() {
System.out.println("a()");
}
}

class b extends a {
b(int x) {//父类没有a(int x)
System.out.println("b("+x+")");
}
}

publicstaticvoid main(String[] args) {
Hello h = new Hello();
b b1 = h.new b(2);
System.out.println("b1 : " + b1.toString());

System.exit(0);// 必须使用这个进行返回。
}

}

会顺序调用a(){} 和b(x){},打印如下

在Java继承中,子类调用哪个父类构造函数?

a()

b(2)

b1 : test.Hello$b@1be847c

使用super函数指定父类构造器:

如果想调用父类的非空参构造函数,需要super指定

测试结果:

注意:

如果存在父类的空参构造函数,不使用super函数,不管有无相同参数的父类构造函数,调用的都是父类的空参构造函数

本文共计401个文字,预计阅读时间需要2分钟。

在Java继承中,子类调用哪个父类构造函数?

Java的继承类中调用哪个构造函数 + 编写者:李国强 + 背景原因:求证:如果父类有多个构造函数,子类调用哪个。 + 初步结论:Java的继承类中,如果子类没有显式调用父类的构造函数,默认调用无参构造函数;如果子类需要调用特定的构造函数,则必须显式调用。


java的继承类中调用哪个构造函数

​​编者:李国帅​​


背景原因:

求证:如果父类有多个构造函数,子类调用哪一个。

初步结论:

java的继承类如果定义新的构造函数,且没有对应的父类构造函数,会调用父类的空参构造函数。

publicclassHello {
class a {
a() {
System.out.println("a()");
}
}

class b extends a {
b(int x) {//父类没有a(int x)
System.out.println("b("+x+")");
}
}

publicstaticvoid main(String[] args) {
Hello h = new Hello();
b b1 = h.new b(2);
System.out.println("b1 : " + b1.toString());

System.exit(0);// 必须使用这个进行返回。
}

}

会顺序调用a(){} 和b(x){},打印如下

在Java继承中,子类调用哪个父类构造函数?

a()

b(2)

b1 : test.Hello$b@1be847c

使用super函数指定父类构造器:

如果想调用父类的非空参构造函数,需要super指定

测试结果:

注意:

如果存在父类的空参构造函数,不使用super函数,不管有无相同参数的父类构造函数,调用的都是父类的空参构造函数