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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Himoriarty 于 2015-6-10 13:01 编辑

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ----------



多态:可以理解为事物存在的多种体现形态。

1、多态的基本体现,前提、好处、应用
体现:父类的引用指向了自己的子类对象,父类的引用也可以接受自己的子类对象。
好处:多态的出现大大提高了扩展性。
前提:必须是类与类之间有关系,要么继承,要么实现,通常还有一个前提,存在覆盖。
弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。

Animal a = new Cat();  //类型提升,向上转型;
如果想要调用子类的特有方法时,需强制将父类的引用转换成子类类型,向下转型。
Animal a = new Animal();//如果父类不为抽象。
Cat c = (Cat) a;
       千万不要出现这样的操作,就是将父类对象转成子类类型,我们能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。
       多态自始至终都是子类对象在做变化。
       可以使用instanceof 来判断两个类是否为同一类。

  1. <div class="blockcode"><blockquote>interface PCI
  2. {
  3.         public void open();
  4.         public void close();
  5. }

  6. class MainBoard
  7. {
  8.         public void run()
  9.         {
  10.                 System.out.println("mainboard run");
  11.         }
  12.         public void usePCI(PCI p)
  13.         {
  14.                
  15.                 if(p != null)
  16.                 {
  17.                         p.open();
  18.                         p.close();
  19.                 }
  20.         }
  21. }

  22. class SoundBoard implements PCI
  23. {
  24.         public void open()
  25.         {
  26.                 System.out.println("soundboard open");
  27.                
  28.         }
  29.         public void close()
  30.         {
  31.                 System.out.println("Soundboard close");
  32.         }
  33. }

  34. class DuotaiDemo
  35. {
  36.         public static void main(String[] args)
  37.         {
  38.                 MainBoard mb = new MainBoard();
  39.                 mb.run();
  40.                 mb.usePCI(null);
  41.                 mb.usePCI(new SoundBoard());
  42.         }
  43. }
复制代码





2、在多态中非静态成员函数的特点:
       在编译时期,参阅引用类型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有编译失败,在运行时期,参阅对象所属的类中是否有调用的方法。
       简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
3、在多态中静态成员变量的特点
       无论编译和运行,都参考左边引用型变量所属的类。


----------android培训java培训、java学习型技术博客、期待与您交流!------------

13 个回复

倒序浏览
总结的不错。
回复 使用道具 举报
向大牛学习
回复 使用道具 举报
总结的不错,学习了。
回复 使用道具 举报
学习学习!~~~~
回复 使用道具 举报
学习一下
回复 使用道具 举报
一休 中级黑马 2015-6-10 22:28:23
7#
要有更深的理解还得不断地写例子  总结错误
回复 使用道具 举报
总结得不错,收藏了
回复 使用道具 举报
学习,不错啊!
回复 使用道具 举报
哈哈。你既然把博客都搬来了。
回复 使用道具 举报
学习了一下。。。。
回复 使用道具 举报
学习了...
回复 使用道具 举报
复习了下 !!!
回复 使用道具 举报
多态一直不理解,还要好好学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马