java 向下转型_Java_向下转型
对象一旦向上转型为父类就无法调用子类的特有方法
解决方法就是用对象的向下转型
向上转型过程已经把Teacher当做父类People使用所以如果在Teacher类里面写一个特有方法我们是无法用 http://Xiaoming.XXX();进行调用
所以向下转型为原型:
对象向下转型是一个【还原】的动作
格式:子类名称 对象名 =(子类名称)父亲对象;
含义:将父类对象还原成本来的子类对象
例子如下
父类:
子类:
我们无法用Xiaoming.music();调用Teacher的特有方法
向下转型
如果把父类换成Animal 子类换成Cat更好理解
父类中有abstract方法eat;
子类有重写的abstract方法eat();和特有方法catchMouse()
向上转型为
Animal animal = new Cat();
Animal.eat()可以成功调用而Animal.catchMouse()不能调用
这时候就需要向下转型
Cat cat=(Cat)animal,将创建的属于Animal类的对象animal转为Cat类的cat对象
就可以用cat.catchMouse();调用法法catchMouse了
向下转型是有危险的,向下转型为什么说是还原呢?其实就是你是由什么转过来的你就应该转回什么,比如cat→animal,那么你就应该由对象animal→cat,假如还有一个animal的子类叫dog,你如果由animal→dog那么就是错误转型,就像我给了你亿元美金,你给回我的是一RMB那么就不是还原了。
java 向下转型_Java_向下转型相关推荐
- 【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货
–本文摘要– 1.本文的目标读者:是了解Java基础,且对面向对象概念有所了解,但是对Java中继承.抽象类.接口.多态等等概念搞不清的初学者. 2.本文的内容摘要:讲述Java中的一 ...
- 重新精读《Java 编程思想》系列之向上转型与向下转型
前言 今天重读了一下向上转型与向下转型,有些新的体会,了解了向上转型的好处,及如何向下转型.在此分享给大家. 向上转型 向上转型是用来表现新类和基类之间的关系.在传统中,由导出类转型成基类,在继承图中 ...
- Java 转型问题(向上转型和向下转型)
Java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象. 什么叫父类引用指向子类对象? 从 2 个名词开始说起:向上转型(upcasting) .向下转型(downcasting). 举 ...
- 第三次学JAVA再学不好就吃翔(part35)--多态向上转型和向下转型
学习笔记,仅供参考 文章目录 面向对象 多态 多态向上转型和向下转型 多态的好处和弊端 面向对象 多态 多态向上转型和向下转型 我们首先通过以下代码复习一下自动类型提升和强制类型转换: class B ...
- Java转型(向上转型和向下转型)
在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型. 5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就 ...
- 【JAVA】关于向上转型与向下转型
向上转型: 子类引用的对象转换为父类类型称为向上转型.通俗地说就是是将子类对象转为父类对象.此处父类对象可以是接口 如果子类重写了父类的方法,就根据这个引用指向调用子类重写的这个方法,不是调用父类的, ...
- java 使用class转型_java中向上转型(upcast)和向下转型(downcast)
先看下面的程序: class Useful { int value = 20; public void f() {System.out.println("f() in the Useful ...
- java向上转型与向下转型
java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象. 什么叫父类引用指向子类对象,且听我慢慢道来. 从2个名词开始说起:向上转型(upcasting) .向下转型(downcasti ...
- JAVA的向上转型与向下转型(二)
java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象. 什么叫父类引用指向子类对象,且听我慢慢道来. 从2个名词开始说起:向上转型(upcasting) .向下转型(downcasti ...
最新文章
- top命令按内存和cpu排序
- java题目不会做那么解答_有几道JAVA的题目不会做 哪位高手来解答一下!谢
- UML统一建模语言知识体系概述
- Linux 实践操作
- linux上还原自主nuget包需要注意的问题
- objective-C 的内存管理之-引用计数
- Spring之AOP动态代理详解
- [Java] 蓝桥杯ALGO-63 算法训练 乘法表
- python进阶之装饰器之5把装饰器作用到类和静态方法上
- 最简单!阿里云服务器采用 LNMP一键安装包 配置 Linux+Nginx+Mysql+PHP
- 【区块链开发入门】(二) 以太坊的编程接口
- mac 谷歌浏览器 跨域访问
- 输入法编辑器(IME)编程指南
- 在局域网被网络管理员限制了远程连接的默认端口3389,导致无法远程桌面连接
- 可伸缩系统的架构经验
- 解决两台路由器串联上网问题
- 查看计算机ip地址配置信息的命令是,查看电脑配置指令大全
- 戴尔电脑怎么录屏?这6个方法教你轻松录屏
- Centos7 su: 鉴定故障Error解决方法
- iia期是第几期_IIa期和IIb期的定义,区别
热门文章
- 【多线程】多线程锁住的是什么、std::lock_guard<std::mutex> locker(mutex_)
- Deep Learning for Computer Vision with Caffe and cuDNN
- activiti工作流引擎入门教程
- spring框架学习(三)junit单元测试
- 图形处理(十一)Stroke Parameterization
- 良好的代码风格养成记
- 20321关系数据库理论基础
- 使用keepalived监控tomcat 达到双机热备
- Windows Server 2008 R2下部署OCS 2007 R2 边缘服务器
- 如何最小化混合云中影子IT带来的风险