本帖最后由 inter18099 于 2012-09-09 16:51:07 编辑

解决方案 »

  1.   

    protected 只能在同一包下,以及子类中可以使用。
    认真看下protected。。
      

  2.   

    protected (受保护的):被protected修饰的属性和方法可以在类内部,相同的包下,以及这个类的子类所访问;
      

  3.   

    问下LZ我的程序和你的是类似的,但是那个子类程序不打包之前可以编译写入package以后就报找不到类(父类),是怎么回事啊!
      

  4.   

    protected (受保护的):被protected修饰的属性和方法可以在类内部,相同的包下,以及这个类的子类所访问问: 为什么 a.eat()不报错,而p.eat()就报错啊?
    因为a.eat()调用的是子类的方法,子类的eat方法可以访问父类的eat方法
    p.eat() 你直接声明了一个父类的对象,因为该main函数与父类不在同一个包,所以访问不了父类的protected函数
      

  5.   

    Abc a = new Abc();
        a.eat();
        ProtectedFunc p = new ProtectedFunc();
        p.eat();
     子类及同一个包才可以用   那个对象a是子类的对象  但是ProtectedFunc  new出来的对象p跟那个保护成员不在同一个包里  这样说的通么   共同探讨下
      

  6.   


    但是该main函数所在的class Abc{}是ProtectedFunc的子类,也就说就是在子类Abc{}中调用父类protectedFunc{}的protected方法,这样也不行吗?