简单认识向上转型和向下转型
向上转型:父类引用指向子类对象
例如:子类student继承了父类person
Person person = new Student();
- 向上转型后的变化
- 关于方法:person可以调用子类和父类公用的方法(如果子类重写了父类的方法,则调用子类的方法),子类特有的方法无法调用。
- 关于属性: person可以调用父类的属性,不可以调用子类的属性。
- 向上转型的作用
- 减少一些重复的代码
- 对象实例化的时候可以根据不同需求实例化不同的对象
向下转型:子类引用指向父类对象
Father f=new Son() //先向上转型
Son s=(Son) f;//再进行向下转型,进行强制转换,子类引用s,父类引用f
- 向下转型的条件:先向上转型,再向下转型。没有经过向上转型,会提示编译错误。
- 向下转型后的变化
- 关于方法:可以调用子类的所有方法,和属性,类型转为子类
- 关于属性:调用的属性为子类的属性。
- 向下转型的作用:向上转型时 ,会遗失子类对象独有的其他方法;可以通过向下转型在重新转回。
这种转型可能存在转型失败地风险,因为父类地范围更广,如果不确定父类对象就是该子类的对象,不推荐使用向下转型。
Person person = new Student();
Teacher teacher = (Teacher) person; // 不安全
简单认识向上转型和向下转型相关推荐
- 【转】面向对象之多态(向上转型与向下转型)
转:https://blog.csdn.net/qq_31655965/article/details/54746235. 多态,大概每个人都知道.但是,又有几个人真的理解什么是多态.多态有哪些细节呢 ...
- [JAVA]向上转型与向下转型
要理解多态性,首先要知道什么是"向上转型"."向下转型". 对象的多态性:父子类对象的转换 **向上转型:**子类对象变为父类对象,语法: 父类 父类对象 = ...
- Java中的向上转型及向下转型
我们都知道Java的三大特性:封装.继承.多态. Java中的向上转型及向下转型体现了Java中的继承性及多态性,所谓继承,不难理解,存在于子父类间,子类继承父类中不被私有化的属性和方法.而多态性,顾 ...
- 为什么要向上转型与向下转型?意义在哪?(对于初学者理解使用)
理解向上转型和向下转型(对于初学者理解使用) 向上转型后 对象只能使用子类和父类共有的方法,子类的属性不能被使用,即属性不覆盖,覆盖的是方法 向下转型后,对象可以调用子类的所有方法和属性 向上转型的意 ...
- java理解向上转型和向下转型
在讲述向上转型和向下转型之前,我们先简单讲解下多态,如果后续看了有关多态的讲解还是不弄,只能自己上网去查阅和理解. 多态概念: 多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种 ...
- 【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货
–本文摘要– 1.本文的目标读者:是了解Java基础,且对面向对象概念有所了解,但是对Java中继承.抽象类.接口.多态等等概念搞不清的初学者. 2.本文的内容摘要:讲述Java中的一 ...
- 重新精读《Java 编程思想》系列之向上转型与向下转型
前言 今天重读了一下向上转型与向下转型,有些新的体会,了解了向上转型的好处,及如何向下转型.在此分享给大家. 向上转型 向上转型是用来表现新类和基类之间的关系.在传统中,由导出类转型成基类,在继承图中 ...
- Day11多态部分-6 【1.3 对象的向上转型和向下转型】
[1.3 对象的向上转型和向下转型] + - 向上转型 子类对象赋值给父类类型的引用时 会自动将子类对象对应的类型 提升为父类类型 语法: 父类类型 引用 = new 子类的构造方法(); 特点: 此 ...
- 第三次学JAVA再学不好就吃翔(part35)--多态向上转型和向下转型
学习笔记,仅供参考 文章目录 面向对象 多态 多态向上转型和向下转型 多态的好处和弊端 面向对象 多态 多态向上转型和向下转型 我们首先通过以下代码复习一下自动类型提升和强制类型转换: class B ...
- Java转型(向上转型和向下转型)
在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型. 5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就 ...
最新文章
- jdbc oracle 连接串
- 一起学windows phone7开发(二十二.使用系统资源)
- html编辑四则运算,简单的web四则运算计算器
- python学习-if、name、main、PyPi、pip
- Android开发之fragment之replace用法
- 太原理工大学自考计算机应用难,太原理工大学人工智能精彩试题+问题详解
- 没有它你的DevOps是玩不转的,你信不?
- 拓步机器人联网说明书_科沃斯IPO聚焦三大战略 谋划转型互联网生态企业
- Docker部署MySQL5.7主从复制结构
- 微信小程序wx.getUserProfile
- 疫情,降薪,跳槽工作难找,任务重加班多,程序员的出路在何方?
- selenium窗口截图操作
- 图:乐清市首届民工艺术节闭幕式暨才艺表演决赛圆满结束_渤锐软件提供了【评委打分公开展示】技术支持
- 用python爬虫批量下载pdf
- MX6Q WM8978 KSZ8863调试笔记
- python玫瑰花数量的含义_玫瑰花数量代表的含义
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 史丰收速算(代码填空)
- 检测计算机主板是否坏掉,解决办法:如何判断cpu是否坏以及主板是否坏,如何检测主板故障...
- 咏南ISAPI中间件
- pc模拟器运行多个Android,低配电脑如何强制开50个安卓模拟器挂机