Java学习之多态

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) 在多态中,静态成员函数的特点:

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。