首页 > 其他分享 >三分钟带你搞懂什么是向上转型和向下转型

三分钟带你搞懂什么是向上转型和向下转型

时间:2023-10-15 22:00:45浏览次数:30  
标签:向上 子类 三分钟 转型 new 搞懂 父类 向下

什么是向上转型?

通过在网上查了资料,和普遍的介绍,一句话总结就是“父类引用指向子类对象”,例:

Human h=new Human();
h.eat();//人类
Animal a=new Animal();
a.eat();//动物
//父类-Human,子类-Animal,a-父类引用,new Human()-子类对象
Animal a=new Human();//向上转型

 


向上转型后的变化
关于方法:a可以调用子类和父类公用的方法(如果子类重写了父类的方法,则调用子类的方法),子类特有的方法无法调用。
关于属性: a可以调用父类的属性,不可以调用子类的属性。


向上转型的作用


1.减少一些重复的代码
2.对象实例化的时候可以根据不同需求实例化不同的对象

 


什么是向下转型?

向下转型,经过查询网上的资料,个人觉得这句总结的比较清楚 ,“子类对象指向父类引用"。例:

Father f=new Son() //先向上转型
Son s=(Son) f;//再进行向下转型,进行强制转换,子类引用s,父类引用f

 


向下转型的条件:先向上转型,再向下转型。没有经过向上转型,会提示编译错误。
向下转型后 的变化
关于方法:可以调用子类的所有方法,和属性,类型转为子类
关于属性:调用 的属性为子类 的属性。


向下转型的作用
向上转型时 ,会遗失子类对象独有的其他方法;可以通过向下转型在重新转回。


标签:向上,子类,三分钟,转型,new,搞懂,父类,向下
From: https://www.cnblogs.com/szmtjs10/p/17766275.html

相关文章

  • 十分钟带你搞懂WPF模板Template
    三类模板(ControlTemplate,DataTemplate,ItemsPanelTemplate)ControlTemplate(所有控件的显示渲染)是用来重写现有控件的可视结构的,一般和依赖属性和附加属性结合,加上绑定,控件可以获得很好的扩展。demo以下是一个简单的WPFControlTemplate样式示例。这个示例是为一个Button......
  • 企业数字化转型的必选项:集成自动化
    NO.1将“不可能”变成“可能”的自动化工作流在智能化时代,我们经常会听到“工作流”这个词,但很多人并不清晰它真正的含义,简单来说,它是一个与其他场景流程集成的应用程序,目标是自动化各应用之间的流程,实现集成场景自动化。在企业日常工作中往往会使用很多软件和SaaS应用,如在线沟通工......
  • 终于搞懂如何用Java去除HTML标签了
    在我平时的工作中,偶尔会用Java做一些解析HTML的工作。有的时候我需要删除所有的HTML标签,只保留纯文字内容。这个问题在做过一些爬虫工作的朋友来说很简单。下面来说说,我们平时使用到的集中解析的方法。使用正则表达式通过爬虫爬到的HTML内容,从程序角度来讲,就是一个字符串。我们......
  • 建管家紧跟国家政策,助力建筑业数字化转型
     近十年间,建筑行业数字化的重大政策20余条。一系列政策表明,传统产业的数字化转型已成为国家重点战略发展方向。在这个过程中,大数据正与建筑产业深度融合,从效率提升的辅助角色,逐渐成为重构建筑产业数字化发展的内核角色。 国家提出大力发展数字经济,推动数字经济和实体经济深度......
  • 看完包你搞懂Redis缓存穿透、击穿和雪崩!!!说到做到
    缓存穿透缓存穿透是指当用户对Redis发出无效或者不存在的数据信息操作时,这条数据在Redis中不存在,Redis就会在MySQL数据库中查询,可时无效的信息在mysql数据库中也不存在,就会造成Redis一直查询MySQL,对MySQL造成极大压力解决方式方式一:返回缓存空值这种方式有点像“以牙还牙”,对......
  • 一张图搞懂sql执行顺序
    冲浪时发现一张很有意思的图,细分了一个长sql语句的执行顺序......
  • DevOps 转型,只有工具怎么够!
    敏捷软件开发已经打破了需求分析、测试、开发之间的壁垒。在软件开发流程中,开发与运维之间面临着相同的隔离问题。DevOps运动的目标就是打破开发与运维之间的壁垒,鼓励开发与运维之间的协作。新运维工具的出现以及敏捷工程实践的建立使得DevOps变成了可能[1],但对于DevOps好处的认......
  • 华为云云耀云服务器L实例评测 | 3分钟搞懂如何在华为云服务器安装Nginx并配置静态访问
    文章目录一、什么是Nginx?二、申请华为云服务器三、使用XShell连接华为云服务器并安装Nginx四、FileZilla连接服务器五、Linux下安装Nginx❇️配置80端口并关闭Linux防火墙✳️测试六、配置静态html至华为云服务器并访问⚠️在华为服务器新建路径⏰使用Filezilla上传文件至华为云服务器⚡......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
        通过结合具体的数学问题,引导高中生深入分析问题,有效地构建求解问题的数学模型,可以使学生逐步掌握数学问题求解的基本思路以及模型建构的方法与注意事项。但是离开了反复训练,无法从根本上提升高中生的数学建模能力。因此,在平时的高中数学教学中,教师要注意结合数学教学的......
  • 一文搞懂HTTP跟HTTPS的区别
    ​前言当我们在网上冲浪浏览网页时,有时候会注意到一些网址的前缀是HTTPS://,而另一些则是HTTP://。那么这两种网址前缀之间有何差异呢?在我们探讨这一问题前,我们首先要了解HTTP和HTTPS的定义。什么是HTTPHTTP(HyperTextTransferProtocol:超文本传输协议),是一个应用层的协议,它基......