11、多态
程序员文章站
2022-07-12 14:46:48
...
一、多态
某一类事物的多种形态
- 体现:父类或者接口的引用指向或者接收自己的子类对象。。如:动物 y = new 猫
- 作用:多态的存在提高了程序的扩展性和后期可维护性
- 前提:1,需要存在继承或者实现关系 2,要有覆盖操作
- 弊端:虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员
- 多态自始至终都是子类的对象在做着变化
二、特点
- 多态调用: 父类 f = new 子类();
- 成员函数:在多态调用时,编译看左边,运行看右边
- 成员变量:无论编译和运行中,都参考左边(引用型变量所属的类)
- 静态成员函数:无论编译和运行中,都参考左边
- 示例:
//多态的示例:电脑主板 interface Pci//pci接口,提高了功能扩展性 { public void open(); public void close(); } class MainBoard//主板 { public void run() { System.out.println("main run"); } public void usePci(Pci p)//提高了程序扩展性 { if(p != null) { p.open(); p.close(); } } } class NetCard implements Pci//网卡 { public void open() { System.out.println("NetCard open"); } public void close() { System.out.println("NetCard close"); } } class SoundCard implements Pci//声卡 { public void open() { System.out.println("SoundCard open"); } public void close() { System.out.println("SoundCard close"); } } class DuoTaiDemo { public static void main(String[] args) { MainBoard mb = new MainBoard(); mb.run(); mb.usePci(new NetCard()); mb.usePci(new SoundCard()); } } /*运行结果是: main run NetCard open NetCard close SoundCard open SoundCard close */
三、多态的出现思想上也做着变化
- 以前是创建对象并指挥对象做事情。
- 有了多态以后,我们可以找到对象的共性类型,直接操作共性类型做事情即可,这样就可以指挥一批对象做事情,即通过操作父类或接口实现。
- 如果想使用子类的特有方法:可以先instanceof 判断是否是指定的类,然后强转
- 示例:
Person p = new Student(); if(p instanceof Student) { Student stu = (Student)p; }
上一篇: Bundle自定义数据传递
下一篇: Spring 模板+回调(转载)
推荐阅读
-
Windows 11还有这隐藏功能!调整任务栏的秘籍
-
微软健康工具提示电脑不支持运行Windows 11?解决办法来了
-
win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法
-
店长啊,为什么我不能退出当前队伍?双十一合伙人答题赢喵币11月7日答案
-
实例讲解PHP面向对象之多态_php技巧
-
Cocos2d-x使用Cocos Studio制作界面并应用---之游戏开发《赵云要格斗》(11)
-
详解Java多态对象的类型转换与动态绑定
-
Oracle错误日志:11gR2 RAC升级后启动报ORA-01565,ORA-17503,ORA-12547
-
oracle 11g 收集统计信息的新特点介绍
-
CentOS V5.5 x64 中Oracle 11g R2 x64安装教程PDF