黑马程序员技术交流社区

标题: 内存图 [打印本页]

作者: 马曦    时间: 2014-12-20 22:02
标题: 内存图
class Fu{
                 int num = 5;                       
        Fu(){                                                                               
               // System.out.println(num);                       
                                this.show();               //0         为啥是0而不是55.             
                System.out.println(num);        //5
        }
               

        void show(){
                System.out.println("55");
        }
}
class Zi extends Fu{
        int num = 3;
                 Zi(){}
       void show() {                              
                        System.out.println(num);                                       
                                }
}
class Demo3 {
        public static void main(String[] args) {
                Zi z = new Zi();                                           
        }
}




作者: 杜庆娇    时间: 2014-12-20 22:12
你打断点看一下
作者: 不给吃鸭梨    时间: 2014-12-20 22:15
内存先后顺序的问题,new zi的时候会先到父类走构造函数,此时父类并没有创建对象,父类中的num只有初始化的值即为0,这里的构造函数调用this .num肯定是0.




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