向上转型:
由子类转换成为父类,在继承图上是向上移动的,称之为向上转型。
特点:
1、首先是安全的,但是可能会导致子类的方法的丢失。
2、父类的引用指向子类的对象
与之相反的是向下转型
特点:
1、不安全,向下转型的时候首先需要向上转型
2、子类的对象指向父类的引用

class Animal{String name;public Animal(String name){this.name=name;}public void eat(){System.out.println("我有吃的方法");}
}
class Cat extends Animal{public Cat(String name) {super(name);}public void eat(){System.out.println("猫吃鱼");}public void swimming(){System.out.println("我会游泳");}
}
class Dog extends Animal{public Dog(String name) {super(name);}public void shout(){System.out.println("我会叫");}
}
public class DuoTaiDemo {public static void main(String[] args) {//向上转型,首先是安全的 ,但是会导致子类的方法的丢失,因为引用只会调用到子类重写父类的方法或者是父类本身已有的方法,子类自己的方法不会被调用到Animal a1= new Cat("我是猫");//Animal a2=new Dog("我是狗");//向下转型,第一部首先是其向上转型。特点:是不安全的 ,因为系统不会知道引用到底是指向的哪一个子类Cat cat=(Cat) a1;cat.swimming();//但是这样就会报错,因为狗指向了猫,相当于把狗转换成为了猫,但是编译不会报错,执行之后会报异常/*Dog dog= (Dog) a1;dog.shout();*/  //执行之后回报 java.lang.ClassCastException异常,处理方法:instanceof运算符//instanceof运算符用来在运行是返回一个布尔值来指出对象类是否是特定类或者是他的子类的一个实例/**用法:* result=object instanceof class* result:布尔类型* object:必选项,任意对象表达式* class:必选项:任意已定义的对象类* 说明:如果object是class或者其定义的一个实例,则result返回true,如果不是或者object是null,则返回一个false*///看引用是否指向狗,没有指向的话就不会执行,也就不会报错if (a1 instanceof Dog) {Dog dog= (Dog) a1;dog.shout();}}
}

多态中对象的上下转型相关推荐

  1. JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例...

    JAVA之旅(八)--多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例 一.多态 我们今天又要学习一个新的概念了,就是多态,它是面向对象的第三个特征,何谓多态 ...

  2. java 父类转子类_Java多态,对象转型,和简单工厂模式。希望对您有帮助!

    各位读者老爷们大家好鸭~图图又来了,今天我们要说一下"多态". 怎么理解这两个字呢?可以理解为同一个引用对象的不同表现形态,即将父类的引用指向子类的对象.这是比较官方的书面解释,大 ...

  3. 多态Poly中的向上/下转型 Upcast/Downcast

    [参考资料]马克-to-win java中多态polymorphism,向上转型和动态方法调度有什么用? java中什么叫多态,动态方法调度(dynamic method dispatch)? jav ...

  4. java多态与对象转型

    向上转型:父类引用指向子类对象(不需强制)这时,父类引用只能看到子类对象中关于父类的东西,可以强制转换成子类引用,可看到全部 向下转型:子类引用指向父类对象(需要强制转换) 多态 子类对象赋值给父类引 ...

  5. Day11多态部分-6 【1.3 对象的向上转型和向下转型】

    [1.3 对象的向上转型和向下转型] + - 向上转型 子类对象赋值给父类类型的引用时 会自动将子类对象对应的类型 提升为父类类型 语法: 父类类型 引用 = new 子类的构造方法(); 特点: 此 ...

  6. java什么是成员域成员方法,java多态中的成员绑定

    多态是面向对象的三大特征之一 谈到多态,不得不提的就是,多态中的成员绑定问题. 方法绑定 将一个方法调用同一个方法主体关联起来被称为绑定.若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现), ...

  7. JAVA的多态的优劣,向上转型,向下转型什么意思?

    多态定义:同一个对象,在不同时刻表现出的不同形态,或者说是在一个类中定义的属性和功能被其他类继承后,当把子类对象直接复制给父类引用变量时,相同引用类型的变量调用同一个方法,所呈现的多种不同行为特性. ...

  8. 【JAVA基础知识总结】JAVA对象转型之上转型对象与下转型对象

    2019独角兽企业重金招聘Python工程师标准>>> JAVA对象转型分为两种:一种叫向下转型,而另一种是向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型) ...

  9. 对象的向上转型和向下转型

    接上一篇:https://blog.csdn.net/green703338130/article/details/81028819 对象的向上转型 对象的向上转型,就是多态的写法. 格式: 父类名称 ...

最新文章

  1. 第十六届全国大学生智能车竞赛技术报告 | 单车拉力组- 上海海事大学-骑摩托的蒙娜丽莎
  2. Android第二十五期 - 猜歌小游戏
  3. PHPCMS v9 二次开发_验证码结合Session开发
  4. Hibernate4实战 之 第四部分:关系映射
  5. Nginx code 常用状态码学习小结
  6. element Table表格实现前x行恒展示,不会被折叠,设置点击表头按钮排序。
  7. html 点击文本框则选中,JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。...
  8. tomcat不停机部署_Tomcat中的零停机部署(和回滚); 演练和清单
  9. [渝粤教育] 西南科技大学 动态网页设计(JSP) 在线考试复习资料
  10. oracle 对两列加唯一性束_oracle中创建unique唯一约束(单列和多列) 。
  11. erdas裁剪影像_运用ERDAS裁剪影像
  12. slope one算法matlab,求助我这个寻峰算法该怎么提高灵敏度
  13. Samtools说明文档网址变更
  14. 苹果id可以彻底注销吗_如何注销苹果id账号
  15. WEB服务器的配置与管理
  16. 硬盘老是显示正在计算机,电脑开机总是提示正在扫描和修复驱动器解决措施
  17. 寻找http://localhost/phpmyadmin出现的问题:HTTP 错误 404.0 - Not Found 您要找的资源已被删除、已更名或暂时不可用
  18. 万亿候苹果,1000000000000 美元的海盗公司 | 摸鱼系列
  19. 从“七宗罪”角度,看互联网产品与人性的深沉纠缠
  20. 微观经济学案例分析(四)

热门文章

  1. 海思SD3403开发板
  2. 写给20岁读者的一些人生建议
  3. 青龙 金手指教程每天低保保姆安装教程
  4. 计算机浏览器应用程序,电脑打开IE浏览器显示找不到应用程序如何解决
  5. 团队管理的四大挑战——裁人篇
  6. Android 天气APP(十三)仿微信弹窗(右上角加号点击弹窗效果)、自定义背景图片、UI优化调整
  7. lululemon女性鞋履系列携AR试穿体验首发上线
  8. python文本去重复_python多个文本组合后去除重复项
  9. 星星之火-55:什么是微观量子?什么是量子的六大特征?什么是微观量子通信?
  10. 怎么设置页眉或者页之间相互独立编写