黑马程序员技术交流社区

标题: 关于多态在内存中的问题 [打印本页]

作者: 罗广伟    时间: 2013-5-1 10:39
标题: 关于多态在内存中的问题
本帖最后由 罗广伟 于 2013-5-1 13:28 编辑

在多态中有
1.类型提升
例如:Cat类继承Animal类
Animal a= new Cat();
2.类型强制转换
Cat c = (Cat)a;
那么这些在内存中究竟是什么样的呢?
a和c在栈内存中区别在哪里?

作者: 郑雪    时间: 2013-5-1 10:58
a指向的是new Cat()对象,就是将new Cat()的地址赋给a,
而经过强制转换Cat c = (Cat)a;后,将a的值赋给c,
此时,c也指向new Cat()对象。
a和c不是一个引用,但指向同一个对象。

我是初学者,我的理解是这样的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2