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) 在多态中,静态成员函数的特点:
无论编译和运行,都参考做左边。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。