据我所知,Constructctor Chaining就是这样
每当我们创建子类的对象(或调用子类构造函数)时,只有在
我们的子构造函数没有使用此(对于相同的类)或超级关键字调用另一个构造函数时,才会首先自动调用父类的默认构造函数..来源:http://www.java67.com/2012/12/how-constructor-chaining-works-in-java.html
如果我的理解是正确的
然后为以下代码: -
Class First{
First(){
System.out.print("Hello");
}
Class Second extends First{
Second(int i)
{
System.out.println("Blogger");
}
Second(){
this(2); //default constructor is calling another constructor using this keyword
}
public static void main(String[] args)
{
Second ob = new Second();
}
Run Code Online (Sandbox Code Playgroud)
输出应该Blogger只是.
但输出是 HelloBlogger
所以看起来父类的默认构造函数仍然被调用.但引用该来源: -
2)如果你没有从父类或同一个类调用另一个构造函数,而不是Java调用default或没有超类的参数构造函数.
阅读更多:http://www.java67.com/2012/12/how-constructor-chaining-works-in-java.html#ixzz4qztuMrKW
所以请帮忙!