首页 > 代码库 > 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学习之多态
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。