class Animal{
public String name ;
Animal(String name){
this.name=name;
}
}
class Cat{
public String furColour;
Cat(String n,String c ){
name=n;
furColour=c;
}
}
class Dog{

public String eyesColour;
Dog(String n,String c){
name=n;
eyesColour=c;
}
}
public class Test1{
public static void main(String args []){
Test test=new Test();
Animal a=new Animal("aName");

}
}

解决方案 »

  1.   

    Test test=new Test(); 这个类是定义在其他文件中?
    不过, Test test=new Test(); 这句代码表示创建类Test的一个对象test, 仅此而已.
    在Java中, Test test;只是定义了一个对象的引用, 这时并没有生成类的对象, test = new Test(); 这句代码才真正的生成一个Test的对象.这与C++不同, 在C++中, Test test;就已经生成了一个Test的对象test. 而Test *test = new Test();是为指针生成对象.
      

  2.   

    Test test=new Test();  这里应该是和那些 猫和狗有关系吧?```创建这个TEST对象的时候,会执行他内部的构造函数!也许你会用到这个东西,如果没有用到就删除吧!
      

  3.   

    没有用到啊,没出现test类,应该报错才对啊。
      

  4.   

    难道你贴的是Thinking in java中的代码?
      

  5.   

    错误不少,我替你简单修改了一下class Animal {
      public String name;  Animal(String name) {
        this.name = name;
      }
    }class Cat extends Animal {// 这里需要继承
      public String furColour;  Cat(String n, String c) {
        super(n); // 这里需要调用父类的构造器
        name = n;
        furColour = c;
      }
    }class Dog extends Animal {
      public String eyesColour;  Dog(String n, String c) {
        super(n);
        name = n;
        eyesColour = c;
      }
    }public class Test {
      public static void main(String args[]) {
        // 没用的类就删掉吧
        //
        Animal a = new Animal("aName");
      }
    }