舉個例子,顯示鳥的飛行動作
對於八哥鳥,妳可以這樣new Myna().fly();
對於鸚鵡,妳可以這樣new Parrot().fly();
對於孔雀,妳可以這樣 new Peacock().fly();
。。。
對於每壹個具體的鳥,妳都必須調用具體的鳥類對象。
現在使用多態再來看看。
我們先寫壹個Bird類,用來抽取出鳥類的飛行動作。
public abstract class Bird {
public void fly() {
System.out.println("default bird fly!");
}
}
再寫具體的鳥類,繼承Bird類
class Parrot extends Bird {
@Override
public void fly() {
System.out.println("Parrot fly");
}
}
class Myna extends Bird {
@Override
public void fly() {
System.out.println("Myna fly");
}
}
現在再來看壹下八哥和鸚鵡的飛行動作。
public static void main(String args[]) {
Bird bird = new Parrot();
bird.fly();
bird = new Myna();
bird.fly();
}
這樣,同壹個Bird的實例對象實際對調用的是八哥和鸚鵡的飛行動作。
假如這樣還不清楚。那麽現在有壹個flyPerform()方法,顯示具體的鳥的飛行行為。
flyPerform(Bird bird){
bird.fly();
}
那麽妳就可以這樣
flyPerform(new Parrot());
flyPerform(new Myna());
假如現在又有了壹種新的鳥,NewBird那麽我們只需要將new NewBird作為參數傳入flyPerform方法即可,而不需要去修改這個方法的代碼。
這是壹個比較粗糙的例子,要不妳仔細琢磨看看?
對於這個推薦答案,我不是很認同,
在java裏面多態壹般指的是運行時多態,重載多態是通過方法簽名實現的,同壹個方法名,但是要求參數必須不壹樣,這個在編譯期間就可以確定調用的是哪個方法。