三分钟带你搞懂什么是向上转型和向下转型
什么是向上转型?
通过在网上查了资料,和普遍的介绍,一句话总结就是“父类引用指向子类对象”,例:
Human h=new Human();
h.eat();//人类
Animal a=new Animal();
a.eat();//动物
//父类-Human,子类-Animal,a-父类引用,new Human()-子类对象
Animal a=new Human();//向上转型
- 向上转型后的变化
- 关于方法:a可以调用子类和父类公用的方法(如果子类重写了父类的方法,则调用子类的方法),子类特有的方法无法调用。
- 关于属性: a可以调用父类的属性,不可以调用子类的属性。
- 向上转型的作用
- 减少一些重复的代码
- 对象实例化的时候可以根据不同需求实例化不同的对象
什么是向下转型?
向下转型,经过查询网上的资料,个人觉得这句总结的比较清楚 ,“子类对象指向父类引用"。例:
Father f=new Son() //先向上转型
Son s=(Son) f;//再进行向下转型,进行强制转换,子类引用s,父类引用f
- 向下转型的条件:先向上转型,再向下转型。没有经过向上转型,会提示编译错误。
- 向下转型后 的变化
- 关于方法:可以调用子类的所有方法,和属性,类型转为子类
- 关于属性:调用 的属性为子类 的属性。
- 向下转型的作用
- 向上转型时 ,会遗失子类对象独有的其他方法;可以通过向下转型在重新转回。
三分钟带你搞懂什么是向上转型和向下转型相关推荐
- 三分钟带您搞懂代理模式
全文共1439字,预计阅读时间:10分钟 定义: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 代理模式是一种比较贴近于生活的 设计模式,现实生活中也有很多代理模式的例子: ...
- 明显调用的表达式前的括号必须具有指针函数类型_每天三分钟带你搞懂C++基础Day5 处理类型 typedef、auto、decltype...
类型别名(type alias)一个名字,是某种类型的同义词.使用类型名有很多好处,能让复杂的类型名字变得简单明了,易于理解和使用. 有两种方法可用于定义类型别名.传统的方法是使用关键字typedef ...
- 三分钟带你搞懂Spring解耦和IOC
前言 回想写过的图书管理系统.租房系统.电影院卖票系统都是基于原生的JavaSE.OOP,没有用到任何框架,在层与层的关系中一个类要想获得与其他类的联系主要的方式还是靠new,这就导致层与层之间.对象 ...
- 三分钟带你弄懂slot插槽——vue进阶
文章目录 三分钟带你弄懂slot插槽--vue进阶 一.概述 程序员之死 什么是 slot插槽? 2.6.0 版本中的 slot 二.具名插槽 例子 效果图 代码 三.小惊喜 三分钟带你弄懂slot插 ...
- 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器
前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...
- 三分钟带你看懂prototype原型——ES6进阶
三分钟带你看懂prototype原型--ES6进阶 1. prototype 定义 2. new 构造函数 3. 存储 4. prototype 作用 1. prototype 定义 在JS中的类的实 ...
- 别再说不了解非接触液位传感器了?只需三分钟就能搞懂
非接触式液位传感器,顾名思义就是不用接触物体就能进行监测,从而避免遭到被监测物体的腐蚀等.那关于非接触式液位传感器,大家了解多少呢?今天TCOOP就来给大家详细介绍下,三分钟就能搞懂,快来看看吧! 一 ...
- 三分钟带你看懂HDMI接口的PCB设计
三分钟带你看懂HDMI接口的PCB设计 本文主要讲解的是HDMI的设计,包括作用和运用的总结,希望大家看了以后能轻松的应对各种HDMI方案的PCB设计. 一.什么是HDMI? 高清晰度多媒体接口(英文 ...
- 三分钟带你读懂 BERT
本文为 AI 研习社编译的技术博客,原标题 : BERT Technology introduced in 3-minutes 作者 | Suleiman Khan, Ph.D. 翻译 | 胡瑛皓.s ...
最新文章
- js 判断 是否为android
- java和C++ C比较
- Quartz cron表达式
- VMTK学习——02.基本的PYPES教程
- 创建一个storageevent事件_事件循环:微任务和宏任务
- 部署LAMP-LAMP平台集成
- 学一点Git–20分钟git快速上手
- 腾讯DevOps全链路解决方案
- SMS短信的C语言代码摘抄
- Docker部署Angular应用
- Python字符串怎样实现contains效果
- Linux 网络编程 常用socket函数详解 常用的函数讲解
- python能print中文吗_python用print输出中文字符
- Django-ftpserver 的两个坑
- MTK刷机常见错误分析
- 根据工资计算税费html,税后工资计算器2018 个人所得税excel计算公式
- SPSS:T检验、方差分析、非参检验、卡方检验的使用要求和适用场景
- 腾讯电脑管家卸载后的残留信息有哪些
- 15000字看完lululemon增长攻略
- RS码FEC机制的实现方法(基于Luigi Rizzo的代码)
热门文章
- python3实现PAT乙级算法题库全集
- 【台达 PLC - 0】 - 电气基础
- 链上数据分析—NFT 项目质量评估
- 常用的maven命令如下
- 安装windows server 2012在H3C服务器上
- dockerfile构建LNRP环境练手
- 泵体inventor制作教程_水泵体Inventor创建实例教程.ppt
- 从词嵌入到文档距离论文笔记(From Word Embeddings To Document Distances)
- jQuery中ajax获取数据赋值给页面
- 日常学习之总结(1机器学习,2jupyter notebook,3语言类,4快捷键,5操作系统,6密码学,7Web安全,8Kali,9正则表达式,10计算机网络,11编程题目)