对象的上转型和下转型 (instanceof关键字)
1.对象的上转型,就是多态的一种写法
格式:父类名称 对象名 = new 子类名称();
Animal animal = new Cat();
含义:右侧创建一个子类对象,把它当作父类来使用
向上转型一定是安全的,从小范围到大范围; 猫是动物,动物不一定是猫
类似于:double num = 100
ps:对象一旦向上转型为父类,就无法调用子类特定内容
上转型还可以在参数传递的时候隐型发生:例如 匿名类、子类对象
usbServe(USB usb)
调用时:
1.usbServe(new Keybroad());
2. Keybroad keybroad = new Keybroad();
usbServe(keybroad);
2.对象的下转型,其实就是还原的操作
格式:子类名称 对象名 = (子类名称)父类对象;
含义:将父类对象还原为本来的子类对象
Cat cat = (Cat)animal
类似于:int num = (int)10.0
ps:必须保证创建的时候就是猫,才能下转型成猫,否则会报错 类转换错误 ClassCastException
报错的情况类似于:int num = (int)10.5 //精度损失
下转型时,忘记原来子类是什么时
格式:对象 instanceof 类名称
会得到一个 boolean 值,判断前面对象能不能当作后面类型的实例
例子:
if (animal instanceof Dog) {
Dog dog = (Dog) animal;
dog.watchHouse();
}
if (animal instanceof Cat) {
Cat cat = (Cat) animal;
cat.catchMouse();
}
最新文章
- zookeeper(单机/集群)安装与配置
- 【转】漫谈iOS程序的证书和签名机制
- test 2016-12-6
- EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(完)
- .NET C# 将 mdb 中数据读为 list<;string[]>; 其中 path 为数据库地址 ,sql 为查询语句
- 20145337 《Java程序设计》第六周学习总结
- x-forwarded-for的深度挖掘
- [转]WCDMA系统结构及关键技术
- c#回调函数写法
- python 聊天程序(基于UDP)
- 028_nginx_https证书
- Oracle 傻瓜式数据归档
- Tarjan学习笔记
- 两类传输协议:TCP,UDP
- 20145320 《网络渗透》MSF基础应用
- ADO.NET 连接池 Session 状态分析
- 10个超赞的jQuery图片滑块动画
- asp.ne如何使用javascript去验证客户端信息,如果验证成功则送往服务器端处理,否则在客户端提示用户(不返回到服务器端处理)
- 深入理解 flex 布局以及计算_Flexbox, Layout
- 加密和数字签名工具GPG
热门文章
- tensorflow-gpu安装
- 什么是kafka,怎么使用? (2) - 内含zookeeper等
- 【NOI2002】银河英雄传说
- python如何离线装包 离线如何部署python环境
- c数据结构 -- 栈与队列
- quartus 9.0 对话框显示不完整
- 第五十三篇 Linux相关——Web服务器
- 【译】用 `Wasmer` 进行插件开发 1
- webpack4.41.0配置二(加载器_url-loader/babel-loader/sass-loader)
- docker容器 - 宿主机和容器之间复制文件(cp)