首页 > 学院 > 开发设计 > 正文

多态有什么用

2019-11-06 06:18:08
字体:
来源:转载
供稿:网友
我把am=new Dog();        am.roar();改为Dog dog=new Dog();        dog.roar();这实现的功能不是一样吗?
给你个例子吧!。。好好体会体会。假设有一个类 叫 鸟类,它拥有属性翅膀,拥有方法鸣叫,如下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)……上面编码没用编译器,可能有错误,请谅解
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表