有什么用。。加了它 还是和不加一个样。。

解决方案 »

  1.   

    呵呵,肯定不一样啊.加了protected,客户程序(不在同一包内)就不能随便创建该类的一个实例了.但是由于是protected,使得该类可以被继承.
      

  2.   

    语法部队
    构造方法前只能是public 修饰
      

  3.   

    2 lou 是对的。。 3楼 错了。
      

  4.   

    构造函数可以是private public protected修饰具体的意思是由这几个修饰符本身的语义给出的 
      

  5.   

    如果构造函数是私有的,那么该类无法被继承(因为子类构造时要调用超类的构造函数,而private使得子类无法调用),无法从外界获得一个对象.但是可以在类的内部产生一个实例的,例如singleton就是使用private的构造函数,然后在内部维护一个实例,而提供一个static的getInstance方法来获取这个实例
    如果构造函数是protected,那么该类可以继承,可以在被包内其他类中产生实例,但是无法在包外或者子类以外的地方产生实例.
    public就不说了.
      

  6.   

    qote:构造函数可以是private public protected修饰具体的意思是由这几个修饰符本身的语义给出的
    没错!还是自己看吧,告诉你印象也不深。
      

  7.   

    当然有区别!
    构造符的访问修饰符可以是private,public,protected及friendly(默认)的
    就是这些访问修饰符的区别!
    看看下面的程序你就明白了:
    //文件名为ProtectedDemo
    package pack;
    class Base{
    protected Base(){
    System.out.println("haha");
    }
    }
    public class ProtectedDemo extends Base{
    public ProtectedDemo(){
    super();//调用父类Base的构造函数,可以调用因为类的访问修饰符为protected
    }
    public static void main(String args[]){
    ProtectedDemo obj = new ProtectedDemo();
    Base objBase = new Base();
    }
    }//文件名为ProtectedDemo1
    import pack.*;
    public class ProtectedDemo1{
    public static void main(String args[]){
    Base objBase = new Base();//不能调用因为访问修饰符为protected
    }
    }
      

  8.   

    作用域   当前类   同一package   子孙类   其他package public    √       √             √       √ protected √       √             √       × friendly  √       √             ×       × private   √       ×             ×       × 不写时默认为friendly 
    子孙类可以在同一包,也可以不一个包,此时以最大权限为准。