在超作品在Java中所有的子类的方法overridding ....如果一个子类有自己独立的方法,我怎样才能使它发挥作用的...概念在Java
class Polymorphism3 {
public static void main(String[] args) {
// note how these are all considered objects of type Animal by Java
Animal[] a = new Animal[4];
a[0] = new Mouse();
a[1] = new Bird();
a[2] = new Horse();
a[3] = new Animal();
for (int i=0;i<4;i++) {
a[i].pullTail();
}
//...
class Animal {
public void pullTail() {
System.out.println("I don't know what to say.");
}
}
class Mouse extends Animal {
public void pullTail() {
System.out.println("fart");
}
}
class Bird extends Animal {
public void pullTail() {
System.out.println("tweet");
}
public void fly() {
System.out.println("flap");
}
}
class Horse extends Animal {
public void pullTail() {
System.out.println("neigh");
}
}
有什么问题吗?您正在覆盖超类方法... – jlordo 2013-03-02 00:15:45
'if(a [i] instanceOf Bird)((Bird)a [i])。fly();' – jdb 2013-03-02 00:17:42
尝试在您的一个子类中移除pullTail()方法;然后运行您的Polymorphism3.main()方法。这应该澄清你正在发生的事情。 – 2013-03-02 00:17:49