帮我看看哪里错了,运行时会报错。
package test;
public class A
{
protected int r;
 protected static int g;
protected void p1()
{
}
 protected static void p2()
{
}
/*public static void main(String a[])
{
//p3();
System.out.println ("fff");
}*/
}package test;
public class B extends A
{
/*public static void main (String a[] )
{
B b = new B();
System.out.println (b.r);
System.out.println (g);
b.p1();
p2();
}*/
}
package test.test1;
import test.*;public class C extends A
{

/*static void p3()
{
C c = new C();
System.out.println (c.r);
System.out.println (g);
c.p1();
p2();
}*/

public static void main(String a[])
{
//p3();
System.out.println ("fff");
}
}

解决方案 »

  1.   

    System.out.println (c.r);
    父类protected的全局变量在不同的包中只能直接使用System.out.println (r);
      

  2.   

    错在main函数那,我把main函数写在C类中就报错,写在A、B类中不报错
    Exception in thread "main" java.lang.NoSuchMethodError: main
      

  3.   

    你的代码没有看明白.不过我想你应该是想知道protected的用法.
    protected修饰的方法和变量和没有任何修饰的方法变量区别就在他的子类中
    protected修饰的方法和变量在不同包的子类中是可见的.而没有修饰符的方法,变量是不可见的;
      

  4.   

    这是三个类,其中B,C类继承A类
    A,B在test包中
    C在test1包中,我把main函数写在C类中就报错