向上转型与向下转型
来源:互联网 发布:杀毒软件哪个好 知乎 编辑:程序博客网 时间:2024/05/18 11:25
1、相信大家老看见向上转型与向下转型(我应该去sun官方查下英文名称了……),咱们慢慢絮叨絮叨,啊哈哈哈!!
2、先说名称由来,之前估计我也说过,这两个概念自然离不开类(class)的复用,也就是继承。在继承结构上,基类(父类)在顶部,下面是扩展类(子类),来张图,形象的看一看..........向上、向下这个概念应该明白什么原因了吧?(基类永远在顶部)
图示:红圈处是Android中,Activity的继承结构,虽然不是图形式的啊,最上层的是基类Object,最下面就是Activity(当然这里用的全称 包名 + 类名)
3、向上转型:父类引用指向子类对象。
Father f = new Son();
4、向下转型:子类引用指向父类引用的子类对象 (听的拗口不?哈哈)。 通俗的说就是子类实例对象赋值给父类引用,然后父类引用又要赋值给子类引用,这个过程就是向下转型。
Father f = new Son();Son s = (Son)f; //看语法,要有(类型)
5、上酸菜,例子。 两个类哈,看名字清晰吧? 父类、子类一目了然
public class Father { public Father(){ super(); }}
public class Son extends Father{ public Son(){ super(); }}
public class Main{ public static void main(String args[]) { Father f = new Son(); //向上转型 Son s = (Son)f; //向下转型 }}
a、向上转型后,父类引用只能调用与子类共有的实例方法与实例变量,子类独有的实例变量与实例方法将不能调用。多态:动态绑定知识点哈。不明白就自己敲一遍。你看看能不能发消息!!!(通过引用调用方法,也称为向实例对象发送一个消息)
b、注意向下转型的前提条件:首先父类引用指向一个子类实例对象。。。。这样绝对不可以Father father = new Father(); Son s = (son)father; 不好意思,直接抛给你ClassCastException!!即父类实例对象绝对不能强制转换为子类的实例对象。
0 0
- 向上转型与向下转型
- 向上转型与向下转型
- 向上转型与向下转型
- 向上转型 向下转型
- 向上转型、向下转型
- 向上转型,向下转型
- 向上转型、向下转型
- 向上转型向下转型
- Java向上转型与向下转型
- JAVA中的向上转型与向下转型
- Java向上转型与向下转型(good)
- Java向上转型与向下转型
- Java向上转型与向下转型
- 对象向上转型与向下转型
- JAVA中的向上转型与向下转型
- JAVA中的向上转型与向下转型
- java向上转型与向下转型
- JAVA中的向上转型与向下转型
- 优雅的控制ViewPager是否可以滑动
- Qt事件系统
- 设计模式之七大原则之 依赖倒置原则
- 数据结构学习--快速排序算法
- R.java was modified manually! Reverting to generated version!(R文件丢失异常原因汇总)
- 向上转型与向下转型
- 8086段偏移的计算
- Volley框架
- pushd popd dirs
- 使用JDK开发WebService
- win7与virtualbox安装的ubuntu系统资源相互访问
- ADB not responding. If you'd like to retry, then please manually kill "adb.e处理 Android studio2.1
- 用jquery制作导航定位特效
- java动态规划 实现输出最大公共子序列的长度以及输出最大子字符串