请选择 进入手机版 | 继续访问电脑版

环信

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: mmap uikit gcc
查看: 223|回复: 0

多态

[复制链接]

42

主题

68

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2015-10-3 15:45:03 | 显示全部楼层 |阅读模式

一。表现:
父类或者接口的引用指向了或者接收了自己的子类对象。

二。前提:
1,类与类之间要有关系。继承,实现。
2,通常都会有覆盖。

三。好处:
预先定义的程序可以运行后期程序的内容。
增强了程序的扩展性。

四。弊端:
虽然可以预先使用,但是只能访问父类中已有的功能,运行的是后期子类的功能内容。
不能预先使用子类中定义的特有功能。

五。多态的注意事项:
在代码中对于成员函数:Fu f = new Zi(); f.method();
编译时期:看左边。
运行时期:看右边。

对于非私有的实例变量,
静态变量,静态方法。
编译和运行都看左边。

  1. class MainBoard
  2. {
  3.         public void run()
  4.         {
  5.                 //主板运行;
  6.         }
  7.         public void usePCI(PCI p)//PCI p = new NetCard();
  8.         {
  9.                 if(p!=null)
  10.                 {
  11.                         p.open();
  12.                         p.close();
  13.                 }
  14.         }
  15. }

  16. interface PCI
  17. {
  18.         void open();
  19.         void close();
  20. }

  21. class MainDemo
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 MainBoard mb = new MainBoard();
  26.                 mb.run();
  27.                 mb.usePCI(null);
  28.                 mb.usePCI(new NetCard());



  29.         }
  30. }


  31. class NetCard implements PCI
  32. {
  33.         public void open(){}
  34.         public void close(){}
  35. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|环信 Glofty.com ( 粤ICP备15084637号 )

GMT+8, 2017-1-23 16:27 , Processed in 0.223134 second(s), 22 queries .

快速回复 返回顶部 返回列表