package tools;public class kj {
 
protected  void   tk(){
System.out.println("r"); 
 }
}
package text;
import tools.kj;
class kj2 extends kj{
kj2(){

}
}
public class text2 {

public static void main(String args[]){
kj2 k = new kj2();
k.tk();//error

System.out.println("w");





}
}

解决方案 »

  1.   

    http://topic.csdn.net/u/20090731/15/d3a1a6da-1344-48e6-b8fd-c126ec4c9c57.html看看
      

  2.   

    package test.pro;public class aaa { protected void tk() {
    System.out.println("r");
    }
    }
    package test.problem;import test.pro.aaa;public class bbb extends aaa {

    bbb(){} public static void main(String args[]) {
    bbb b = new bbb();
    b.tk();
    }
    }
    不同包 子类调用父类方法 
      

  3.   

    因为你在text2中调用,text2不是kj的子类,所以不能调用
      

  4.   

                                 同一类    同一包下不同类        子类        不同包非子类 public                         √          √               √         √
    protected                      √          √               √
    friendly(默认不加)              √          √
    private                        √
          所以楼主  protected子类可以访问的 我试过了
      

  5.   

     
    同一类 同一包下不同类 子类 不同包非子类
    √         √         √     √                             public 
    √         √         √                                   protected 
    √         √                                             friendly(默认不加)
    √                                                       private   
      

  6.   

    《Java程序设计语言》,答案就在同一段话里面,“这些对象引用的类型要与受保护成员所在类的类型是相同的或是其子类型的。”