2014-10-30 59 views
1

让我们假设下面是代码片段,那么如何知道调用的构造函数的数量?如果我调用自己的无参数构造函数,将调用多少个构造函数?

private class First{ 
    } 
    class Second extends First{ 
     public Second(){ 
      super(); 
     } 
    } 
    public class DriverClass extends Second{ 
    String class_name=null; 
    public DriverClass(){ 
    class_name="DriverClass"; 
    } 
     public static void main(String[] args){ 
     new DriverClass(); 
     }  
    } 
+1

? – Vikdor 2014-10-30 04:25:50

+1

只有1个,因为你没有创建任何二级对象。 – 2014-10-30 04:25:52

+2

我把它做成四个:'DriverClass(),'Second()','First()'和Object()',但也许这个问题自从第一次发布以来就被迅速编辑了。 '如何知道'是分析代码。 – EJP 2014-10-30 04:30:53

回答

0

该程序给编译时错误,因为私人类是不能继承的。 在给定的程序中,First类以“private”关键字为前缀。

所以,本着“类二扩展首先”给你碰巧添加一些`system.out.println`报表中的每一个建设者和运行编译时错误

+0

对不起,我明白了 – 2014-10-30 04:45:36

1

至少有四个构造函数调用:DriverClass继而调用Second继而调用First当然Object的。

+0

因为你外出了四个因素? – EJP 2014-10-30 04:31:22

+0

即使如此,最低的答案是2. – EJP 2014-10-30 04:32:13

+0

再次 - 编辑了很多次。 – Jason 2014-10-30 04:34:17

-1

由于DriverClass没有扩展任何类,只有一个构造函数是DriverClass的默认无参数构造函数将被调用。