class a{
   public a(){}
}
请问如果构造器定义为protected,private,和不写(“firendly”)他们有什么区别?
请从继承,访问权限,初始化,对象的创建这几方面解答一下谢谢。

解决方案 »

  1.   

    写成private 它的子类就不能调用这个构造函数来初始化必须还要顶一个非private的构造函数来给子类调用
      

  2.   

    你都能问到这一层,难道就就不知道什么结果?
    你不知道protected、private、friendly、public的区别?
      

  3.   

    构造函数的权限跟其他函数的权限标志是一样的。有些时间我们不允许一个类有多个实例,或者只允许特定的类来初始化这个类,那么就有必要加个这些权限词了。比如数据库的连接池,在一台机器上有且只有一个实例,那就必须用private权限,使其他类不能初始化这个类,可以提供一个getInstance()返回唯一实例。