小编Sha*_*had的帖子

关于Java中构造函数链接的困惑

据我所知,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

所以请帮忙!

java constructor constructor-chaining

4
推荐指数
2
解决办法
312
查看次数

标签 统计

constructor ×1

constructor-chaining ×1

java ×1