黑马程序员技术交流社区

标题: 多态中常量调用的理解? [打印本页]

作者: chenglong25    时间: 2016-7-1 13:08
标题: 多态中常量调用的理解?
个人认为下面代码中两次输出变量的i来自同一个在堆里创建的对象.
而多态创建出来的对象里面变量包含两部分:一部分是子类的变量,一部分是父类的对象.知识点可以参考附近的内存图片.
请大神看看,理解是否有误?
代码如下:
class A {
        public int i = 10;
}

class B extends A {
        public int i = 20;
}
public class Test{
           public static void main(String args[]){
              B b = new B();
               A a = b;  
        System.out.println(b.i);    //20    指向对象中的this代表的常量
        System.out.println(a.i);    //10    指向相同对象中super代表的常量
    }
}


多态中的成员变量.png (112.23 KB, 下载次数: 2)

多态中的成员变量.png

作者: 元笙    时间: 2016-7-1 15:25
理解是正确的,A a = b,并没有新创建对象,而是父类引用指向子类对象
作者: chenglong25    时间: 2016-7-1 16:20
谢谢,楼上的帮忙确认.




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