在超作品在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