一、多态
某一类事物的多种形态
- 体现:父类或者接口的引用指向或者接收自己的子类对象。。如:动物 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; }
相关推荐
Java基础精品课11-多态录屏5.多态调用演示.mp4
CoreJava面试题总结。 1 常用的集合有哪些?为什么这么用? 2 静态变量和成员变量的区别 3 filter过滤器用过么,一般用在什么地方?...11 多态实现的机制 12 wait sleep的区别? 13 start run区别?
接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象...Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。
java概述课件11继承和多态.ppt
Java基础精品课11-多态录屏1.作业讲解1.mp4
Java基础精品课11-多态录屏2.作业讲解2.mp4
Java基础精品课11-多态录屏3.作业讲解3.mp4
Java基础精品课11-多态录屏6.instanceof和转型.mp4
│ │ ├11 多态实例讲解.avi │ │ ├12 本节作业之选课系统开发.avi │ │ └day6.zip │ ├老男孩教育-Python14期VIP视频-14节-mp4> │ │ ├day7.zip │ │ ├oldboy-1.avi │ │ ├oldboy-10.avi │ │ ├...
Java基础精品课11-多态录屏4.静态方法不能被覆盖.mp4
第3章 类的封装、继承和多态 第4章 接口、内部类和Java API基础 第5章 异常处理 第6章 图形用户界面 第7章 多线程 第8章 Applet应用程序 第9章 输入/输出流和文件操作 第10章 网络通信 第11章 数据库应用 第12章 ...
11_面向对象_第3天(接口多态)_讲义共6页.pdf.zip
第六周-第11章节-Python3.5-多态实例讲解.avi
11_Java面向对象_第3天(接口、多态)_讲义
java语言与面向对象设计PPT,讲解的很是详细,很适合初级学员仔细拜读,里面还有很多随堂练习题
针对传统多态电路进化设计算法有效性问题,提出了基于...实验结果表明,与传统多态电路进化算法相比所提算法进化代数减少了31.2%~77.7%,成功概率提高了11%~52%,具有进化迭代次数少、成功概率高的优势,提高了算法有效性
JAVA面向对象---多态(完结)
课程设计 基于C++多态的项目管理系统源码+资料齐全+部署文档 高分项目.zip课程设计 基于C++多态的项目管理系统源码+资料齐全+部署文档 高分项目.zip 【备注】 1、该项目是高分课程设计项目源码,已获导师指导认可...
课程设计 基于C++多态的职工管理系统源码+资料齐全+部署文档 高分项目.zip课程设计 基于C++多态的职工管理系统源码+资料齐全+部署文档 高分项目.zip 【备注】 1、该项目是高分课程设计项目源码,已获导师指导认可...