A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴华二 中级黑马   /  2012-3-17 17:14  /  2137 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态条件:要有继承,要有重写,要有父类引用指向子类对象!在哪些情况有多态的存在,能举一些例子说说多态的存在!谢了...

3 个回复

倒序浏览
本帖最后由 叶绍亮 于 2012-3-17 17:31 编辑

假设有一个类 叫 鸟类,它拥有属性翅膀,拥有方法鸣叫,如下
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 Haizi{
     public void listen(Bird bird){
        bird.moo();
   }
   /*这时多态就很好的体现了,孩子想听鸟叫,无论什么鸟都可以给他,但是你想让他和鹦鹉
  说话,就给一只鹦鹉传给listen方法,结果他就听到了鹦鹉的叫声,程序输出:鹦
  *鹉的叫声
  */
  public static void main(String[] args) {
       new Haizi().listen(new Parrot());       
  }
}
多态实现了动态绑定,让程序有了很好的扩展性,比如想给他一只燕子,就只需要写个燕子类Swallow继承Bird方法就可以了

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
动物类
{
  吃();
}
猫类继承动物类{
吃(){
吃鱼
}
}

猫 x = new 猫();

动物 x = new 猫();

具体情况还是看毕老师第8天的视频,大概要花个两三个小时理解

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
一个父亲有4个子女
A,B,C,D
老师要抽他们,
老师手上有,E,F,D,G四个鞭子抽人的方法,每种方法只能抽对应的人。

当老师拿着A鞭子来找父亲,

父亲就知道了,老师要抽的是A,然后就把A叫出来了!

这就是多态的应用,用父类去接收参数

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马