面向对象三大特征之多态
实现多态的三大要素
1.继承关系的父类跟子类
2.子类重写父类的方法
3.父类的引用指向子类的对象
多态的类型
1.向上转型——子类到父类的转换:自动类型转换
语法:父类名 引用变量名=new 子类名
向上转型系统会自动进行类型转换
通过父类引用变量调用的方法是子类覆盖或继承的子类方法不是父类的方法
通过父类的引用变量无法调用子类特有的方法
2.向下转型——父类到子类的转换:强制类型转换
向下转型需用到向上转型的类型
子类型 引用变量名=(子类型)父类型的引用变量名
将一个指向子类对象的父类引用赋给一个子类的引用即将父类类型转换为子类类型称为向下转型
向下转型必须进行强制类型转换
将父类类型转换为它的某个子类类型后,才能调用其子类特有的属性
当初给父类实例化对象时候给出的类型在向下转型的时候需要相同子类
如果不相同的话会报错不兼容性的问题
instanceof运算符
跟等于号和String.equals()相同
用于判断相同子类
对象类型必须与instanceof参数后所指定的的类或接口上在继承树上具有上下级关系
否则会出现编译错误
多态的好处:可替换型,简化型,可扩充性,灵活性
面向对象三大特征之多态相关推荐
- Cris 的Python笔记(十一):面向对象三大特征之多态
''' Python 的多态:一个对象可以以不同的形态去呈现,实现方式相比 Java更加简单 因为动态语言的特点,Python 无法实现在代码指向前对方法参数进行检查,所以只要满足指定方法体的要求,任 ...
- 实践解读丨Python 面向对象三大特征之多态
摘要:多态从字面意思上看就是多种形态,在我们python的面向对象里就是不同的对象在接收相同方法或者函数时会产生不同的行为,也就是说,每个对象可以用自己的方式去响应共同的函数,不同的方式实现不同的结果 ...
- JAVA面向对象三大特征之一多态
一.什么是多态? 同类型的对象,变现出的不同形态. 二.多态的表现形式 父类类型 对象名称 = 子类对象: 三.多态的前提 a.有继承/实现关系 b.有父类引用指引子类对象 例子: ...
- 面向对象第七章,内存的管理,面向对象三大特征封装、继承、多态
###1.内存管理:由JVM来管理的------了解 1)堆: 1.1)存储new出来的对象(包括实例变量) 1.2)垃圾:没有任何引用指向的对象 垃圾回收器(GC)不定时到内存中清扫垃圾, 回收过程 ...
- c++面向对象三大特征封装、继承和多态知识总结
面向对象三大特征:封装,继承,多态: 一.封装:该公开的就公开话,该私有的就隐藏掉,主要是由public,private实现:作用是便于分工和分模块,防止不必要的扩展: 二.继承:就是一种传承,可以把 ...
- 面向对象三大特征(封装、继承、多态)详解
面向对象的三大特征 万物皆可归类,类是对于世界事物的高度抽象,不同的事物有不同的关系:一个类自身与外界的封装关系:一个父类与子类的继承关系:一个类和多个类的多态关系. 万物皆对象,对象是具体的世界事物 ...
- c++局部对象是什么_面向对象三大特征: 封装
今日内容 面向对象概述 类和对象的关系 面向对象内存图 private.this关键字和封装 面向对象之构造方法 面向对象三大特征 封装 继承 多态 01. 面向过程和面向对象思想概述 什么是面向过程 ...
- Java面向对象三大特征---继承
系列文章目录 Java面向对象三大特征-多态 Java面向对象三大特征-封装 文章目录 系列文章目录 前言 一.概念 二.举例说明 三.语句格式 三.为何要使用继承 四.super与this关键字 五 ...
- 细说面向对象三大特征
一.软件设计的概况 1. 软件的生命周期 产品提出需求 分析以及规划 软件编码及其调试(自测,联调) 上测试环境,给测试人员测试(提bug) 上 linux 生产服务器(运维人员维护,修改bug,系统 ...
最新文章
- COM和ATL学习方法
- 用python+flask自己制作api(教程附源码)
- Web前端之登录表单
- hdu 1421 动态规划
- 计算机科技手抄报内容,科技手抄报内容云计算文字稿
- .NET下数据访问层+webform前台 技术大比拼
- 将Vim打造成Python快速开发环境(一)
- C++ concurrent_queue::try_pop 方法
- 西贝凭什么一年做到50多亿?| 独创的合伙人制:创业分部+赛场制
- pca人脸特征降维的过程理解及matlab编程实现
- sdn交换机与普通交换机区别—Vecloud
- 怎么去掉微博图片中的水印,照片水印怎么去
- 文献调研(九):基于rough set理论和深度学习算法的建筑能耗预测模型
- 阿里云服务器,修改Apache2默认端口80
- 使用Intrinsics优化
- 【开源】我和 JAP(JA Plus) 的故事
- 网络编程培训之七 实现Traceroute
- 牛客练习赛87 B k小数查询(STL)
- python什么是调用_什么是Python中的可调用?
- C++第七周【任务3】设计Complex,使实部和虚部的类型为定义对象时用的实际类型。