class Animal{//动物类   public String name="haha";//名字

  public void say() {//说话方法       
      System.out.println(name + "say hi");
  }
}
class Cat extends Animal{//猫类继承了动物类}
public class Test{ public static void main(String[] args) {
                
Cat cat=new Cat();//实例化一个猫 cat.say();//由于猫继承了动物,所以继承了他所有非private的属性和方法
}
学习继承的时候一个例子,在CMD下编译出来说类 Test是公共的,应在名为Test.java的文件中声明public class Test{
求指教?

解决方案 »

  1.   

    Test类应该卸载文件名称为Test.java的文件中。
      

  2.   

    你把文件名改成Test.java就可以了。
      

  3.   

    楼上正解
    把编译的文件改为Test.java再编译
      

  4.   

    没有问题啊,好像就是掉了最后的一个大括号!!!
    运行是没问题的。
    LZ生成的3个class文件,你只需要运行Test.class文件即可!
      

  5.   

    为什么文件名是Animal.java 是错误的?
      

  6.   

    每个java文件只能有一个公共类,即public类,并且文件的命名必须和这个public类名保持一致,否则编译报错.看上述的代码貌似是写在一个文件中的,所以文件的命名应该为public类的名字即 Test.java
      

  7.   

    文件文必须与public的类名字一致,这是龟腚
      

  8.   

    文件名必须与public class 旁边的这个类名一致哦
      

  9.   

    .java文件类名要和其中公有类的名字相同,这是Java的强制规定
      

  10.   

    类Animal:public class Animal {
        public String name = "haha";
        
        public void say() {
            System.out.println(name + " say hi!");
        }}
    类Cat继承Animal:public class Cat extends Animal {}测试类Test:public class Test {
        public static void main(String[] args) {
            Cat cat = new Cat();
            cat.say();
        }}
    编译结果: