main方法不能申明为“静态” 这里怎么改啊

package com.lesson.test;

class Animal {
public String name;

Animal(String name) {
this.name = name;
}
}

class Cat extends Animal {
public String eyesColor;

Cat(String n, String c) {
super(n);
eyesColor = c;
}
}

class Dog extends Animal {
public String furColor;

Dog(String n, String c) {
super(n);
furColor = c;
}

public class TestAnimal {
public static void main(String[] args) { //这句报错 说main方法不能申明为“静态” 这里怎么改啊
TestAnimal ta = new TestAnimal();
Animal a = new Animal("name");
Cat c = new Cat("catname", "blue");
Dog d = new Dog("dogname", "yello");
ta.f(a);
ta.f(c);
ta.f(d);

}

public void f(Animal a) {
System.out.println("name:" + a.name);
Cat cat = (Cat) a;
if (a instanceof Cat) {
System.out.println(" " + cat.eyesColor + " eyes");
} else if (a instanceof Dog) {
Dog dog = (Dog) a;
System.out.println(" " + dog.furColor + " fur");
}

}
}

}

第1个回答  2011-02-24
大括号没有配对好,修改如下

class Animal {
public String name;

Animal(String name) {
this.name = name;
}
}

class Cat extends Animal {
public String eyesColor;

Cat(String n, String c) {
super(n);
eyesColor = c;
}
}

class Dog extends Animal {
public String furColor;

Dog(String n, String c) {
super(n);
furColor = c;
}

}

public class TestAnimal {
public static void main(String[] args) {
TestAnimal ta = new TestAnimal();
Animal a = new Animal("name");
Cat c = new Cat("catname", "blue");
Dog d = new Dog("dogname", "yello");
ta.f(a);
ta.f(c);
ta.f(d);

}

public void f(Animal a) {
System.out.println("name:" + a.name);
Cat cat = (Cat) a;
if (a instanceof Cat) {
System.out.println(" " + cat.eyesColor + " eyes");
} else if (a instanceof Dog) {
Dog dog = (Dog) a;
System.out.println(" " + dog.furColor + " fur");
}

}
}
第2个回答  2011-02-24
public class TestAnimal {
......
}
你这段放错地方了,放到class Dog extends Animal 里面了,把他取出来放就不会报错了.
第3个回答  2011-02-24
public class TestAnimal {
public static void main(String[] args) { //这句报错 说main方法不能申明为“静态” 这里怎么改啊
TestAnimal ta = new TestAnimal();
Animal a = new Animal("name");
Cat c = new Cat("catname", "blue");
Dog d = new Dog("dogname", "yello");
ta.f(a);
ta.f(c);
ta.f(d);

}
}
你把这个单独成一个类就不会报错了.
第4个回答  2011-02-24
class Dog extends Animal {
public String furColor;

Dog(String n, String c) {
super(n);
furColor = c;
}
} //这里少了个大括号本回答被提问者采纳
大家正在搜