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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在多态的体现当中,父类的引用也可以接收自己的子类对象是什么意思?麻烦举个例子说明下

5 个回复

倒序浏览
本帖最后由 想飞的鱼 于 2014-6-12 23:59 编辑

根据你的问题写了个小代码说明一下:
  1. /*
  2. 说明多态
  3. 在多态的体现当中,父类的引用也可以接收自己的子类对象是什么意思?
  4. */

  5. abstract class Animal
  6. {
  7.         abstract public void eat();
  8.         public void sleep()
  9.         {
  10.                 System.out.println("闭眼睡觉");
  11.         }
  12. }
  13. class Dog extends Animal
  14. {
  15.         public void eat()
  16.         {
  17.                 System.out.println("吃骨头");
  18.         }
  19. }
  20. class Cat extends Animal
  21. {
  22.         public void eat()
  23.         {
  24.                 System.out.println("吃鱼");
  25.         }
  26. }

  27. class DuoTaiDemo
  28. {
  29.         public static void main(String[] args)
  30.         {
  31.                 eat(new Dog());
  32.                 eat(new Cat());
  33.         }
  34. /*
  35. 需要一个动物,但是给了一个狗接收进来也是可以啊,
  36. 当然,这里有个类型提升,狗提升为动物,如果要使用狗的特有方法,则要强转一下,一般用到instanceof先判断一下
  37. */
  38.         public static void eat(Animal a)//相当于:Animal a = new Dog(); 即是父类引用接收了一个子类对象。
  39.         {
  40.                 a.eat();
  41.         }
  42. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

回复 使用道具 举报
Student 继承Person 然后 Person p = new Studnet();这就是多态父类引用指向子类对现的体现,也叫向上转型.
回复 使用道具 举报
  1. public class Fu
  2. {
  3.     public void Name()
  4.     {
  5.         System.out.println("fu");
  6.     }
  7.      
  8.      
  9. }

  10. public class Zi extends Fu
  11. {
  12.     public void Name()
  13.     {
  14.         System.out.println("zi");
  15.     }
  16. }


  17. public class Test
  18. {
  19.     public static void main(String[] args)
  20.     {
  21.         Fu p = new Zi();
  22.         p.Name();

  23.                 //这时候程序执行结果是"zi";
  24.                 //虽然是用父类p引用,但是方法是指向子类的方向
  25.     }
  26. }
复制代码


程序执行结果是"zi"
虽然是用父类p引用,但是方法是指向子类的方向

点评

就是编译看“=”的左边,运行看“=”的右边  发表于 2014-6-13 10:28

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

回复 使用道具 举报
3楼正解,顺便水一下分
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马