package Test;public class Base{
 private String showMe(){
 return "Base";
 }
 public void print(){
 System.out.println(showMe());
 }
}public class Sub extends Base{
public String showMe(){
return"Sub";
}
public static void main(String args[]){
Sub sub=new Sub();
sub.print();
}
}
在"public class Sub extends Base" 中 Sub这个地方出现:this public type Sub must be defined in its own  file ?   我已经把它列为继承关系了, 为什么说还需要定义的? 如果我在本包下再定义一个Sub类, 同样还是这样的提示。询问各位为什么这样,以及如何解决这个问题?

解决方案 »

  1.   

    一个java源文件里只能有一个public修饰的类,并且类名和文件名相同,楼主你把那个Sub前面的public去掉试试?前提是你的文件名为Base.java。
      

  2.   

    文件名为:Sub.java
    文件内容为:package Test;
    class Base{
    private String showMe(){
    return "Base";
    }
    public void print(){
    System.out.println(showMe());
    }
    }public class Sub extends Base{
    public String showMe(){
    return"Sub";
    }
    public static void main(String args[]){
    Sub sub=new Sub();
    sub.print();
    }
    }然后编译运行
      

  3.   

    我把第一个类:public class Base 中的public去掉, 但是还是出现同样得错误提示
      

  4.   

    不能两个公共类,你可以弄两个java类文件
      

  5.   

    已经发现了,只要把文件名改为:Sub.java,就可以了,非常感谢楼上几位回答。