class A{
public String name="类A";
public void disp(){
System.out.println(name);
}
}
class B extends A{
private int age;
public String name="类B";
public void disp(){
System.out.println(name);
}
}
class C {
public static void main(String[] args){
B b = new B();
b.disp();
}
} 为什么保存名为:C.java运行不了?提示为:"can not read :C.java"
不是说类中有main方法,没有public的类,文件名保存为与main方法的类名一致吗?
无论保存为哪个类名都出现同样提示!请大家帮我看看哪里出错了~回答得好必给分!

解决方案 »

  1.   

    原则1:
    有main方法的类想要执行必须是public
    原则2:
    public的类所在文件必须以类名为准.
      

  2.   

    根据上面原则,修改如下
    C.java文件
    class A {
    public String name = "类A"; public void disp() {
    System.out.println(name);
    }
    }class B extends A {
    private int age;
    public String name = "类B"; public void disp() {
    System.out.println(name);
    }
    }public class C {
    public static void main(String[] args) {
    B b = new B();
    b.disp();
    }
    }
      

  3.   

    LZ类中有main方法,没有public的类,文件名保存为与main方法的类名一致,没错!
    编译时你的路径错了~!以后要仔细一点哦! 知道吗?(*^__^*) 嘻嘻……
    学习.....
      

  4.   

    呵呵,有些基础都忘了,你原来写的对,c不用是public的,只要文件名和c名一样就行了.