本人用jdk1.6编译以下代码,结果主类中调用保护方法出现语法错误!求教package A;public class A{ public int add(int a,int b){ return a+b; } int minus(int a,int b){ return a-b; } public int test1(int x,int y){ return minus(x,y); }}/************************************************************************/public class B{ private int multiply(int a,int b){ return a*b; } protected double divide(int a,int b){ double d=(double)a/(double)b; return d; } public int test2(int x,int y){ return multiply(x,y); } public double test3(int x,int y){ return divide(x,y); }}/************************************************************************/import A.A;import B.B;public class Main extends B{ public static void main(String args[]){ A a=new A(); B b=new B(); System.out.println(a.add(3,6)); System.out.println(a.test1(51,6)); System.out.println(b.test2(3,6)); System.out.println(b.divide(33,6)); System.out.println(b.test3(33,6)); }}

解决方案 »

  1.   

    jdk1.5下没有问题.lz可以把代码放到ide环境中试试,如果有错误会有提示信息.
      

  2.   

    protected类型的好像是同一包中的可以访问,子类不能够访问,你把Main这个类的继承关系去掉看看
      

  3.   

    我也在JDK1.6下测试了,没有任何错误,楼主请三思。不过真看不出来你想测试什么呢。即使想测试protected,也应该用Main类的对象来调用B中protected的方法呀。
      

  4.   

    protected修饰的方法在实例对象中是不能被调用的,protected修饰的方法只能被它的子类被用