首页 > 代码库 > Java学习之多态

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 MainBoard15 {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 PCI32 {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 PCI46 {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学习之多态