A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 苑桥别馆 中级黑马   /  2014-11-22 00:53  /  1200 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

RT,super/this关键字,在内存中是如何运作的,两者的存储位置相同么?

9 个回复

倒序浏览
This关键字
回复 使用道具 举报
我感觉是super在this中,因为子类对象的创建,一定会调用父类的构造方法。this代表子类对象的引用,super代表父类对象的引用
回复 使用道具 举报
cbb 中级黑马 2014-11-22 08:31:11
板凳
手机打字……可能不太详细…this是有两种用法,一种是代表本类对象的引用,一种是以语句形式出现,作用是构造函数之间相互调用…
而super是代表父类对象的引用!
当程序加载,实例化子类对象,会首先去看子类的构造函数,而子类的构造函数内部第一行有默认的super语句,然后jvm就会跑到父类进行初始化,完事才会对子类进行初始化。

下面这段就是对象的初始化过程……
首先执行父类静态的内容,父类静态的内容执行完毕后。
接着去执行子类的静态的内容,当子类的静态内容执行完毕之后。
再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕。接着执行父类的构造方法,父类的构造方法执行完毕之后。
它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕,再去执行子类的构造方法。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼上说的很详细!学习了
回复 使用道具 举报
你的问题有点奇怪!
super/this关键字应该是用法吧,
this指的就是对象,或者对应对象的变量.this()放在第一行,指对应对象的构函
super指的就是父类对象,或者对应父类的变量.一般用于super();调用父类构造方法
回复 使用道具 举报
一个是对对象的引用,一个是对内存中父类的引用, 不是一个概念,但可以理解为一样的用法,其实this是代替了对象名,super代替了父类名……
回复 使用道具 举报
另外一种用法是在构造函数中, this()是调用本类中的构造函数,有参无参都可以,super()则是调用父类的构造方法,同this。但是注意,子类中的构造方法一定要有一个是调用super()的。另外在构造函数中这俩都要放在第一行……
回复 使用道具 举报
楼上说的好好,学习了。。。。。
回复 使用道具 举报
学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马