Java多态之向下转型】的更多相关文章

目录 Java多态之向下转型 强制类型转换 instanceof Java多态之向下转型 往期回顾:我们学习了向上转型和动态绑定的概念,可以知道在继承关系中,将一个子类对象赋值给父类的引用变量,调用父类的方法,在实际运行时,就可以根据子类中重写的方法执行不同的操作.其中有一个弊端,就是在向上转型的过程中,其实丢失了一部分子类特有的功能,毕竟它只允许调用父类中的方法.那么,如何在这时调用子类中的方法呢,这时就需要与向上转型相对应的方法,就是所谓的:向下转型. 向上转型是自动就能完成的,向下转型则需…
向上转型 将子类对象当作父类对象     子类对象------>父类对象 先实例化子类 父类 父类对象 = 子类实例 package test2; class Father{ public void fun1(){ System.out.println("A---------fun 1"); } public void fun2(){ this.fun1();; } } class Sun extends Father{ public void fun1(){ System.ou…
在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转型,动态绑定 例三:向上转型,静态绑定 例四:向下转型 转型的误区 1.运行信息(RTTI) 2.数组类型 3.Java容器 几个同义词 首先是几组同义词.它们出现在不同的书籍上,这是造成理解混淆的原因之一. 父类/超类/基类 子类/导出类/继承类/派生类 静态绑定/前期绑定 动态绑定/后期绑定/运行时绑定…
1.父类对象可以强制转换为子类对象,但是前提是此父类对象为子类对象实例化的结果. e.g. Fruit fruit=new Apple(); Apple a=(Apple)fruit;//ok e.g. 假设Apple类继承于Fruit类, Object fruit=new Fruit(); Object apple=(Apple)fruit;//wrong 2.子类的实例向父类转型是为了实现多态.…
What is the point of downcast? 当一个方法只有子类才有,马克-to-win:不是说基类和子类都有,开始时又是基类指针指向派生类,这时就需要downcast, see the following example. after you cast with SubClass,sc is pure SubClass type. 例1.9.1--- class SuperClassM_t_w {     int a;     SuperClassM_t_w() {      …
上一篇博客(http://blog.csdn.net/qq_32059827/article/details/51328638)最后对多态的弊端做了显示,这里解决这个弊端.如下: /* 多态的弊端: 不能使用子类的特有功能. 我就想使用子类的特有功能?行不行? 行. 怎么用呢? A:创建子类对象调用方法即可.(可以,但是很多时候不合理.而且,太占内存了) B:把父类的引用强制转换为子类的引用.(向下转型) 对象间的转型问题: 向上转型: Fu f = new Zi(); 向下转型:(容易出现问题…
[参考资料]马克-to-win java中多态polymorphism,向上转型和动态方法调度有什么用? java中什么叫多态,动态方法调度(dynamic method dispatch)? java中downcast向下转型到底有什么用? 举例说明! java中如何使用派生类指针指向基类,即downcast向下转型?举例! [我的记忆点] √ Upcast: 父类指针→子类对象(只能调用 父类方法.子类override的方法.不能调用子类only方法) √ Downcast:子类指针→(子类…
                                            Java向上转型和向下转型(附具体样例) 熬夜整理的关于Java向上和向下转型的样例,很的通俗易懂哦~~~~ 一.向上转型 package com.sheepmu; class Animal { public void eat() { System.out.println("父类的 eating..."); } } class Bird extends Animal { @Override publ…
前言 今天重读了一下向上转型与向下转型,有些新的体会,了解了向上转型的好处,及如何向下转型.在此分享给大家. 向上转型 向上转型是用来表现新类和基类之间的关系.在传统中,由导出类转型成基类,在继承图中是向上移动的.因此称作向上转型.由于向上转型是从一个较专用类型向较通用类型转换,所以总是安全的.也就是说,导出类是基类的一个超集.它可能比基类含有更多的方法.但他必须具备基类中所含有的方法. 我们来看一个例子. class Car { public void run() { System.out.p…
多态的前提.多态的特点 /* 多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有方法重写. 其实没有也是可以的,但是如果没有这个就没有意义. 动物 d = new 猫(); d.show(); 动物 d = new 狗(); d.show(); C:要有父类引用指向子类对象. 父 f = new 子(); 用代码体现一下多态. 多态中的成员访问特点: A:成员变量 编译看左边,运行看左边. B…