程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 繼承-求大神回答我的疑問,這是關於多態的解釋

繼承-求大神回答我的疑問,這是關於多態的解釋

編輯:編程解疑
求大神回答我的疑問,這是關於多態的解釋

鳥類封裝了 翅膀類和moo方法;另外有兩個類都繼承鳥類並重寫了moo方法,分別是鹦鹉和麻雀如下:
鹦鹉類:
public class Parrot extends Bird{
public void moo(){
System.out.println("鹦鹉的叫聲");
}
}
麻雀類:
public class Sparrow extends Bird{
public void moo(){
System.out.println("麻雀的叫聲");
}
}
方法重寫應該懂吧,不懂自己找書看吧;然後你有個妻子她想聽鳥叫,就有個妻子類
public class Wife{
public void listen(Bird bird){
bird.moo();
}
/*這時多態就很好的體現了,你妻子想聽鳥叫,無論什麼鳥都可以給她,但是你想讓她和鹦鹉
*說話,你就買了一只鹦鹉傳給listen方法,結果你妻子聽到了鹦鹉的叫聲,程序輸出:鹦
*鹉的叫聲
*/
public static void main(String[] args) {
new Wife().listen(new Parrot());
}
}

我想問的是:
這樣是多態比較簡單,但假如我不用妻子類,直接在main方法裡new對象,這樣要加燕子的聲音,直接new燕子,不還是只需要寫個燕子類就行了嗎,還更簡單,new Parrot().moo;
new Swallow().moo;.....,連繼承都不用了。。。,反正只需要聲音,不一定要妻子

最佳回答:


1.妻子類,只是調用了Bird的方法,是不參與繼承的,但是妻子類是展示了多態的好處,不論你是鹦鹉還是什麼別的,都可以通過Bird類來調用,而且雖然寫的都是moo方法,實際調用卻是各自不同的moo方法
2.連繼承都不用了這個思想就不對,為什麼要用繼承,最大的好處就是代碼簡單了,重復的東西只要寫一次。如果你不使用繼承,那燕子鹦鹉兩個類裡面會有重復的部分:翅膀。

qq_33157614
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved