首页 > 编程语言 > 详细

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

时间:2019-07-19 15:07:20      阅读:50      评论:0      收藏:0      [点我收藏+]

先定义一个父类。里面定义成员变量和成员方法
技术分享图片

子类继承父类,也有成员变量和成员方法,成员方法是重写了父类的。能写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进栈
技术分享图片

技术分享图片











 

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!