java语法规定:)个人理解:protected的范围比friendly大在可以被继承类访问,如果是超类被继承,则不论超类放在什么位置都可以访问,所以没有必要再定义成protected!

解决方案 »

  1.   

    一句话,好好看看Thinking in Java的相关章节,它解释得比我好。
      

  2.   

    iceball(射雕英雄) :请你好好看看<Thinking in Java>
    blackcourser(be stronger……) :你说的我也懂
    eddygtimegod(dark) :我就是看了Thinking in Java没有看明白才来问的
      

  3.   

    只有friendly和public
    不知道protected的class有什么用?
      

  4.   

    按你说的,类的protected可以比friendly多些什么,而比public少些什么
      

  5.   

    不对啊。
    是friendly可访问范围比protected大。friendly可以被同一个包内的类访问,也可以被不在同一个包内的子类访问;而protected只能被子类访问。
    把一个类的方法或是域设为protected,就是说它们只能被该类的子类访问。
      

  6.   

    OK,既然你这样说,我就发表一下我的遇见吧,交流交流,有错请GS指正,愿受教。
    默认的类访问定义是所谓的Friendly,也就是包内同一路径可访问。但是是不能定义为protected或者private的,这样会报错。主要是以为OO的思想里,protected是为了可以继承该类的子类可访问得到。但是一个类的构造函数连同一个包下面的其他类都访问不了,就不用说有子类了。所以一个类定义为protected是报错的。private就更加不行。但是,如果内部类就会是另一种情况。内部类就算声明为private都可以由其包容类访问它的构造函数,也就是说,它是可以被实例化,是有意义的。
    以上是我相关理解。
      

  7.   

    理解了
    觉得blackcourser(be stronger……) 说的对!