ClassOne.java 
1. package com.abc.pkg1; 
2. public class ClassOne { 
3. private char var = ‘a’;  
4. protected char getVar()  {return var;} 
5. }  ClassTest.java   
1. package com.abc.pkg2; 
2. import com.abc.pkg1.ClassOne; 
3. public class ClassTest extends ClassOne { 
4.   public static void main(String[]args)  { 
5.     char a = new ClassOne().getVar(); 
6.     char b = new ClassTest().getVar();  
7.   } 
8. } 
classTest中的第5行为什么错误?

解决方案 »

  1.   

    protected 只能同包内,或者子类里访问。
      

  2.   

    只能通过子类去访问父类的protected属性和方法,也就是说,不能直接创建那个父类的对象去调用父类的protected属性和方法,即使在子类中。
      

  3.   

    protected一般就是用来在继承关系里用的
    大多都是为了留给子类复写的属性或者方法,而不能从外部来访问的数据
      

  4.   

    保护域可被本类访问,也可被同一包内的其它类访问,[color=#FF0000]还可被其它包内的该类的子类访问[/color]
      

  5.   

    protected是指只能在本类、同包和子类中被访问!
      

  6.   

    protected的访问范围:同类中、同包中、不同包的子类中。
    你在不同包中直接用子类对象来调用。就像下面第6行那样。