JAVA的多態

假設有一個類 叫 鳥類,它擁有屬性翅膀,擁有方法鳴叫,以下
public class Bird{
   private Wing wing;
   public void moo(){
          System.out.println("鳥叫聲");
   }
}
鳥類封裝了 翅膀類和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());	
  }
}
多態實現了動態綁定,讓程序有了很好的擴展性,好比你之後想買一隻燕子送給你妻子,
就只須要寫個燕子類Swallow繼承Bird方法就能夠了,
而不須要再在妻子類裏添加一個方法listen(Swallow swallow)……上面編碼沒用編譯器,
可能有錯誤,請諒解
說得夠詳細了吧,感謝世界上有我這麼好的人吧 ^_^
相關文章
相關標籤/搜索