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();

}

最新文章

  1. zookeeper(单机/集群)安装与配置
  2. 【转】漫谈iOS程序的证书和签名机制
  3. test 2016-12-6
  4. EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(完)
  5. .NET C# 将 mdb 中数据读为 list<string[]> 其中 path 为数据库地址 ,sql 为查询语句
  6. 20145337 《Java程序设计》第六周学习总结
  7. x-forwarded-for的深度挖掘
  8. [转]WCDMA系统结构及关键技术
  9. c#回调函数写法
  10. python 聊天程序(基于UDP)
  11. 028_nginx_https证书
  12. Oracle 傻瓜式数据归档
  13. Tarjan学习笔记
  14. 两类传输协议:TCP,UDP
  15. 20145320 《网络渗透》MSF基础应用
  16. ADO.NET 连接池 Session 状态分析
  17. 10个超赞的jQuery图片滑块动画
  18. asp.ne如何使用javascript去验证客户端信息,如果验证成功则送往服务器端处理,否则在客户端提示用户(不返回到服务器端处理)
  19. 深入理解 flex 布局以及计算_Flexbox, Layout
  20. 加密和数字签名工具GPG

热门文章

  1. tensorflow-gpu安装
  2. 什么是kafka,怎么使用? (2) - 内含zookeeper等
  3. 【NOI2002】银河英雄传说
  4. python如何离线装包 离线如何部署python环境
  5. c数据结构 -- 栈与队列
  6. quartus 9.0 对话框显示不完整
  7. 第五十三篇 Linux相关——Web服务器
  8. 【译】用 `Wasmer` 进行插件开发 1
  9. webpack4.41.0配置二(加载器_url-loader/babel-loader/sass-loader)
  10. docker容器 - 宿主机和容器之间复制文件(cp)