向上转型:父类引用指向子类对象

例如:子类student继承了父类person

Person person = new Student();
  • 向上转型后的变化
  1. 关于方法:person可以调用子类和父类公用的方法(如果子类重写了父类的方法,则调用子类的方法),子类特有的方法无法调用。
  2. 关于属性: person可以调用父类的属性,不可以调用子类的属性。
  • 向上转型的作用
  1. 减少一些重复的代码
  2. 对象实例化的时候可以根据不同需求实例化不同的对象

向下转型:子类引用指向父类对象

Father f=new Son() //先向上转型
Son s=(Son) f;//再进行向下转型,进行强制转换,子类引用s,父类引用f
  • 向下转型的条件:先向上转型,再向下转型。没有经过向上转型,会提示编译错误。
  • 向下转型后的变化
  1. 关于方法:可以调用子类的所有方法,和属性,类型转为子类
  2. 关于属性:调用的属性为子类的属性。
  • 向下转型的作用:向上转型时 ,会遗失子类对象独有的其他方法;可以通过向下转型在重新转回。

这种转型可能存在转型失败地风险,因为父类地范围更广,如果不确定父类对象就是该子类的对象,不推荐使用向下转型。

Person person = new Student();
Teacher teacher = (Teacher) person; // 不安全

简单认识向上转型和向下转型相关推荐

  1. 【转】面向对象之多态(向上转型与向下转型)

    转:https://blog.csdn.net/qq_31655965/article/details/54746235. 多态,大概每个人都知道.但是,又有几个人真的理解什么是多态.多态有哪些细节呢 ...

  2. [JAVA]向上转型与向下转型

    要理解多态性,首先要知道什么是"向上转型"."向下转型". 对象的多态性:父子类对象的转换 **向上转型:**子类对象变为父类对象,语法: 父类 父类对象 = ...

  3. Java中的向上转型及向下转型

    我们都知道Java的三大特性:封装.继承.多态. Java中的向上转型及向下转型体现了Java中的继承性及多态性,所谓继承,不难理解,存在于子父类间,子类继承父类中不被私有化的属性和方法.而多态性,顾 ...

  4. 为什么要向上转型与向下转型?意义在哪?(对于初学者理解使用)

    理解向上转型和向下转型(对于初学者理解使用) 向上转型后 对象只能使用子类和父类共有的方法,子类的属性不能被使用,即属性不覆盖,覆盖的是方法 向下转型后,对象可以调用子类的所有方法和属性 向上转型的意 ...

  5. java理解向上转型和向下转型

    在讲述向上转型和向下转型之前,我们先简单讲解下多态,如果后续看了有关多态的讲解还是不弄,只能自己上网去查阅和理解. 多态概念: 多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种 ...

  6. 【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货

    –本文摘要–     1.本文的目标读者:是了解Java基础,且对面向对象概念有所了解,但是对Java中继承.抽象类.接口.多态等等概念搞不清的初学者.     2.本文的内容摘要:讲述Java中的一 ...

  7. 重新精读《Java 编程思想》系列之向上转型与向下转型

    前言 今天重读了一下向上转型与向下转型,有些新的体会,了解了向上转型的好处,及如何向下转型.在此分享给大家. 向上转型 向上转型是用来表现新类和基类之间的关系.在传统中,由导出类转型成基类,在继承图中 ...

  8. Day11多态部分-6 【1.3 对象的向上转型和向下转型】

    [1.3 对象的向上转型和向下转型] + - 向上转型 子类对象赋值给父类类型的引用时 会自动将子类对象对应的类型 提升为父类类型 语法: 父类类型 引用 = new 子类的构造方法(); 特点: 此 ...

  9. 第三次学JAVA再学不好就吃翔(part35)--多态向上转型和向下转型

    学习笔记,仅供参考 文章目录 面向对象 多态 多态向上转型和向下转型 多态的好处和弊端 面向对象 多态 多态向上转型和向下转型 我们首先通过以下代码复习一下自动类型提升和强制类型转换: class B ...

  10. Java转型(向上转型和向下转型)

    在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型. 5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就 ...

最新文章

  1. jdbc oracle 连接串
  2. 一起学windows phone7开发(二十二.使用系统资源)
  3. html编辑四则运算,简单的web四则运算计算器
  4. python学习-if、name、main、PyPi、pip
  5. Android开发之fragment之replace用法
  6. 太原理工大学自考计算机应用难,太原理工大学人工智能精彩试题+问题详解
  7. 没有它你的DevOps是玩不转的,你信不?
  8. 拓步机器人联网说明书_科沃斯IPO聚焦三大战略 谋划转型互联网生态企业
  9. Docker部署MySQL5.7主从复制结构
  10. 微信小程序wx.getUserProfile
  11. 疫情,降薪,跳槽工作难找,任务重加班多,程序员的出路在何方?
  12. selenium窗口截图操作
  13. 图:乐清市首届民工艺术节闭幕式暨才艺表演决赛圆满结束_渤锐软件提供了【评委打分公开展示】技术支持
  14. 用python爬虫批量下载pdf
  15. MX6Q WM8978 KSZ8863调试笔记
  16. python玫瑰花数量的含义_玫瑰花数量代表的含义
  17. 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 史丰收速算(代码填空)
  18. 检测计算机主板是否坏掉,解决办法:如何判断cpu是否坏以及主板是否坏,如何检测主板故障...
  19. 咏南ISAPI中间件
  20. pc模拟器运行多个Android,低配电脑如何强制开50个安卓模拟器挂机

热门文章

  1. 12个超炫数据可视化工具
  2. mysql的临时表简介
  3. 【人工智能项目】- 深度学习实现猫狗大战
  4. 苹果手机为什么要越狱,越狱后的优缺点
  5. 项目文件模板-项目章程
  6. 华为算法工程师面试经历汇总
  7. Treer:生成目录结构树
  8. 【新书】崛起的超级智能:互联网大脑如何影响科技未来
  9. 破解 geetest(极验)的滑块验证码
  10. 全球与中国便携式彩色超声设备市场投资前景及发展趋势预测分析报告2022-2028年