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)……上面编码没用编译器,
可能有错误,请谅解
说得够详细了吧,感谢世界上有我这么好的人吧 ^_^
相关文章
相关标签/搜索