【继承】----子父类成员变量--内存简单图解
2016-10-08 20:00
253 查看
继承中子父类成员变量的内存简单图解
class Fu { int num=21; } //写一个子类 class Zi extends Fu { int num=23; //show() void show() { System.out.println("this.num:"+this.num+",super.num:"+super.num);//子类父类成员变量名相同 } } class ExtendsDemo2 { publicstatic void main(String[]args) { Ziz=new Zi(); z.show(); } }
继承中子父类成员变量的内存图解:
1, 划分栈,堆,方法区,空间。主函数进栈,变量z出现(如图1)。
2, 由于子类继承父类,子类要使用父类,父类需先进方法区。先加载父类,再加载子类(如图2)。
3, 接着开始执行newZi(),在堆里创建对象,划分空间地址(如图3)。
4, 子类继承了父类,父类是存储在子类里面的。这个时候子类一继承父类,父类变量就到了子类里面(如图4)。
5, 初始化完毕后,将0x0045赋给了z,z就指向了对象(如图5)。
6, 接着执行z.show(),show方法进栈,show里面有this,this拥有所属对象的地址值0x0045。
继续执行show里的方法,this.num,super.num。子类加载完成了有一个父类的引用super。
7.show弹栈,main弹栈。
相关文章推荐
- 【继承】----子父类中成员函数--内存简单图解
- 由一个简单示例 引出java继承中父子类成员变量共享问题 以及super的使用
- JAVA-初步认识-第八章-继承-子父类中成员变量的内存图解
- Java 继承之子父类中的成员变量和函数
- 父子实例的内存控制--继承成员变量和继承方法的区别
- 成员变量 全局变量 静态方法 非静态方法 内存图解
- 【继承】----子父类中的构造函数,子类的实例化过程内存图解
- 08-面向对象(继承-Java中的单继承和多重继承). 11-面向对象(继承-子父类中成员变量的内存图解) 11-面向对象(继承-子父类中成员变量的内存图解2
- 成员变量是类时与继承类中父类在子类中内存情况
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- Java基础:第三十六讲 成员变量的继承与覆盖
- 关于JAVA继承类的静态变量、成员变量、父子类构造方法调用顺序的探讨
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- 类的static成员变量和成员函数能被继承吗? 友元函数能访问父类的private变量吗?那static成员函数能是纯虚函数吗,能被继承吗?
- C++继承中覆盖和隐藏基类成员变量或成员函数
- 类中成员变量在内存中的分布是怎样的?---2
- 成员变量与继承多态的问题
- C++类对象成员变量与成员函数内存分配问题
- 深入理解子类继承父类中的成员变量问题
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数