黑马程序员--03.面向对象--02.子类和父类成员变量的关系【个人总结】
来源:互联网 发布:东华软件股票怎么样 编辑:程序博客网 时间:2024/06/10 05:18
子类、父类成员变量的关系
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
继承中子类、父类成员变量的特点
给出一段程序
class Fu{ int num =4; void hah(){}}class Zi extends Fu{ int num =5; void show(){ System.out.println("super toString:"+ super.toString()); System.out.println("super toString:"+ this.toString()); System.out.println("super num:"+ super.num); System.out.println("this num:"+ this.num); }}class Test{ public static void main(String[] args) { Zi zi =new Zi(); zi.show(); }}
运行结果:
super和this 的toString()打印值都是 Zi@150bd4d 说明这两个引用是指向堆内存中同一个地址。说明,Fu类构建的成员变量全部都存放在子类的堆内存区域中。
(1). 分析继承关系的内存变化图
分析一下内存变化:
[1], 执行Zi zi =new Zi();的时候,使用到了Zi的构造函数,所以此时,Zi.class需要马上进入内存。当装载Zi.class进入内存的方法区的时候,发现Zi extends Fu(后面会知道调用Zi的构造会先去执行Fu的构造,这样就是使用了Fu的构造方法,所以Fu的类文件也要加载到内存) ==>此时Fu.class也被加载到内存的方法区。
【知识点】加载类到内存具体指的是将.class文件的代码等具体信息全部加载到Java内存中的方法区。因此,Fu和Zi全部加载到内存之后,两个类的函数成员的代码存储到方法区中。以供JVM调用。
[2]. 子类、父类的成员变量全部存放在子类的内存区域
【个人感悟】:继承的含义字面理解就是:
{1}. 儿子从父亲的那边继承父亲的财产 (Java中父类的成员变量相当于财产)
{2}. 儿子从父亲的那边学会父亲做事的方法 (Java中父类的成员函数相当于父亲办事的方法)
{3}. 继承体现的是:财产和做事方法的传承,而不是父亲这个实体的被儿子据为己有。
{4}. 继承之后,儿子就可以把父亲类的财产和方法据为己有!!所以实例化子类之后,财产是父类的成员变量一定要据为己有!!所以有上面的结论:子类、父类的成员变量全部存放在子类的内存区域。
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
- 黑马程序员--03.面向对象--02.子类和父类成员变量的关系【个人总结】
- 黑马程序员--03.面向对象--03.子类父类方法重写和覆盖的理解【个人总结】
- 黑马程序员--03.Java面向对象--05.子类对象初始化的过程【个人总结】
- 黑马程序员--03.面向对象--04.子类构造必须访问父类构造的原因 this_super语句的含义【个人总结】
- 父类成员变量与子类成员变量的关系
- 黑马程序员--03.面向对象--01.静态方法调用非静态成员【个人总结】
- 黑马程序员——面向对象_成员变量和局部变量的区别
- 黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
- 黑马程序员--面向对象思想的个人理解以及类中成员
- Java父、子类成员变量和方法的调用关系
- 黑马程序员-java 面向对象【个人总结】
- 黑马程序员-关于面向对象的个人总结
- 黑马程序员——JAVA基础_01(类和对象的关系、成员变量和局部变量、构造函数、构造代码块)
- 黑马程序员------面向对象(No.1)(面向对象的理解、成员变量、局部变量、匿名对象)
- 黑马程序员--面向对象之一:面向对象概念、类和对象的关系、封装、构造函数、this关键字、static关键字
- 黑马程序员——Java基础——面向对象——局部变量和成员变量
- 面向对象_继承中成员变量的关系
- 黑马程序员--03.Java面向对象--04.【对象初始化的过程】【对象调用成员的过程】
- C语言精确获得消耗时间
- HDU-2444 二分图的判别和最大匹配数。
- 删除集合中重复的数据
- ibc++是一个C++标准库实现
- Android应用开发中的风格和主题(style,themes)
- 黑马程序员--03.面向对象--02.子类和父类成员变量的关系【个人总结】
- n&(n-1)的妙用
- SQLite3简介及在.Net程序中的使用
- Drop-in replacement for UINavigationController with custom transition animations
- IAP-应用内购买(部分)
- 函数指针
- CVPR13 Rolling Riemannian Manifolds to Solve the Multi-class Classification Problem
- 寻找最小的K个数
- iOS---检测网络状态