youqing

导航

默认构造方法并非总是public的

以前印象中一直有一个概念,说“如果没有提供构造方法,java将自动添加一个空的public的构造方法”。现在看来,有2个问题,一,默认构造方法未必是public的,二,默认构造方法肯定有super();(Object类的是空构造方法)。

实际情况是,默认构造方法的修饰符是和所在类的修饰符一致的。

比如

public class Test{

}

它的默认构造方法是

public Test(){

super();

}

class Test{

}

它的默认构造方法是

Test(){

super();

}

这就没有public了。

对于内部类的情况,类的修饰符可能是private,protected。相应的构造方法的修饰符就是private和protected。

posted on 2016-11-18 11:36  youqing  阅读(1106)  评论(0编辑  收藏  举报