在实例和关键字中,我们都见过this和super,关于它们的使用已经在往期文章中有过介绍。两者都能参与构造方法和实例,在知识点上的联系密不可分。
1.相同点
(1)this和super都是与实例有关的
使用this和super可以访问实例成员和类成员(虽然通过this和super可以访问类成员,但不建议使用)
因此this和super都不能出现在static方法中和static代码块中(类初始化器)
(2)this和super都可以用于调用构造方法
当通过this或super调用构造方法时,它们必须位于构造方法的第一行
同一个构造方法内部this或super不能同时出现
2.不同
(1)代表的对象不同:
this: 指本类调用者这个对象
super: 代表父类对象的引用
(2)前提:
this:没有继承也可以使用
super:只能在继承条件才可以使用
(3)构造方法:
this();本类的构造方法
super();父类的构造方法
(4)作用不同
-
this 的作用
一个实例变量可以通过 this. 赋值另一个实例变量;一个实例方法可以通过 this. 调用另一个实例方法;甚至一个构造方法也可以通过 this. 调用另一个构造方法。
-
super的作用
普通的直接引用,与this类似,super相当于是指向当前对象的父类。
子类中的成员变量或方法与父类中的成员变量或方法同名。
以上就是java中this和super的相同、不同点的解析,都为纯记忆的理论知识,小伙伴们在学习的时候要牢固掌握和注意区分。
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容