码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习之多态

时间:2014-12-20 12:52:45      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

1)多态的体现

    父类的引用指向了自己的子类对象。  父类的引用也可以接收自己的子类对象。

2)多态的前提

    必须是类与类之间有关系。要么继承,要么实现。  通常还有一个前提:存在覆盖。

3)多态的好处

    多态的出现大大的提高程序的扩展性。

4)多态的弊端

    提高了扩展性,但是只能使用父类的引用访问父类中的成员。

5)多态的应用

  代码如下:

 1 /*
 2 需求:电脑运行实例,
 3 电脑运行基于主板。主板中可以有网卡、显卡、声卡等插件
 4 */
 5 
 6 //主板统一接口
 7 interface PCI
 8 {
 9     public void open();
10     public void close();
11 }
12 
13 //主板类
14 class MainBoard
15 {
16     public void run()
17     {
18         System.out.println("mainboard run ");
19     }
20     public void usePCI(PCI p)//PCI p = new NetCard()//接口型引用指向自己的子类对象。
21     {
22         if(p!=null)
23         {
24             p.open();
25             p.close();
26         }
27     }
28 }
29 
30 //网卡类
31 class NetCard implements PCI
32 {
33     public void open()
34     {
35         System.out.println("netcard open");
36     }
37     public void close()
38     {
39         System.out.println("netcard close");
40         method();
41     }
42 }
43 
44 //声卡类
45 class SoundCard implements PCI
46 {
47     public void open()
48     {
49         System.out.println("SoundCard open");
50     }
51     public void close()
52     {
53         System.out.println("SoundCard close");
54     }
55 }
56 
57 class DuoTaiDemo 
58 {
59     public static void main(String[] args) 
60     {
61         MainBoard mb = new MainBoard();
62         mb.run();
63         mb.usePCI(null);
64         mb.usePCI(new NetCard());
65         mb.usePCI(new SoundCard());
66     }
67 }

 

6) a) 在多态中成员函数的特点:

    在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。

    在运行时期:参阅对象所属的类中是否有调用的方法。 简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。

  b) 在多态中,成员变量的特点:

    无论编译和运行,都参考左边(引用型变量所属的类)。

  c) 在多态中,静态成员函数的特点:

    无论编译和运行,都参考做左边。

 

Java学习之多态

标签:

原文地址:http://www.cnblogs.com/bye-2012lx/p/4175258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!