在一个类中,如果将它的构造函数前面的public修饰符去掉,(此时,我认为此构造函数应该变为私有的了).
但为什么在另外一个类中,还能去调用这个构造函数去建立对象呢?

解决方案 »

  1.   

    去掉public并不是私有的
    和其他方法一样是默认的也就是包访问权限
      

  2.   

    在C++中没有修饰符时默认为私有的!
    但在java 中是default类型,在java中有四种修饰符的!
    多看看java书吧!
      

  3.   

    private才是私有啊
    缺省是包访问权限
      

  4.   

    构造函数前面的public修饰符去掉,系统会自动加上public,只有加上private才能变成私有的。
      

  5.   

    你去掉了public, 但在Java里面默太会在一个程序级里面可以访问的
      

  6.   

    1、如果父类没有构造函数,则编译器会自动提供一个默认的无参数的构造函数,如果用户提供了自己的构造函数,则编译器就不在提供默认的无参数构造函数。2、子类实例化时会自动调用父类的默认构造函数,所以如果父类的默认的无参数的构造函数为private,则编译器会报错,而如果父类没有提供默认的无参数的构造函数,而提供了其他类型的构造函数,编译器同样会报错,因为B找不到父类的默认无参数构造函数。所以,我们最好给父类提供一个无参数的构造函数。
     3、在子类的构造函数中用super()显示的调用父类的有参构造函数。4、去掉public变成default,是包访问权限