阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_12-super与this关键字图解

先定义一个父类。里面定义成员变量和成员方法


子类继承父类,也有成员变量和成员方法,成员方法是重写了父类的。能写Override就写。这样看的就更加清楚。

子类定义父类没有的方法、里面分别输出了三个num的值


创建子类对象。调用show方法

输出的结果






子类的method里面调用父类的method方法

这样子类在调用method的时候,会去把父类的执行一遍。然后再去执行子类的

这既是刚才写的点的简略版

内存图

橙色的super_class在最后编译后的class文件在子类上是带着的
这个橙颜色的特殊标记,是用来干什么的呢?它其实是一个指向,指向了父类

就是在子class做一个标记。告诉它父亲是谁。就好比写的extends关键字

main方法先进站

 main方法进栈就要看他做了什么事,首先是创建了一个子对象。凡事new出来的都在堆当中


今天的这个子可不是单纯的子,因为是有几成关系的子

子类对象当中,包含一个完整的父类结构。所以一定是先把父类构造完了,再在父类的外围写上子类的内容


super代表里面的。this代表外面的


new了一个对象。0x666的地址就会赋值给zi这个对象

这个对象和以往的区别,不再是一层嵌套,而是两层嵌套


zi调用show方法,show只在子类中才有。所以。show方法进栈

第一个num没有修饰符,就会优先使用局部变量


this是蓝色 的指向

super是绿色的指向


调用zi的method。zi的method优先进栈



子的method里面有个super的调用,调用的就是父类的method

所以还要再进栈。父的mehtod进栈














 

原文地址:https://www.cnblogs.com/wangjunwei/p/11213258.html