this关键字和super关键字

目录

1.this

2.super


1.this

(1).说明

this是一个关键字,是一个引用,是一个变量,保存内存地址指向自身。

this可以使用在实例方法中,也可以使用在构造方法中。

this出现在实例方法中其实代表的是当前对象。

this不能使用在静态方法中。因为静态方法是类级别的方法。this代表当前对象,静态方法中不存在当前对象。

this. 大部分情况下可以省略,但是用来区分局部变量和实例变量的时候不能省略。

this() 这种语法只能出现在构造方法第一行,表示当前构造方法调用本类其他的构造方法,目的是代码复用。

(2).详细介绍
this. 大部分情况下可以省略,但是用来区分局部变量和实例变量的时候不能省略。

示例:

    public void setId(Long id) {
        this.id = id;
    }

this.id表示当前对象中id,而id表示传入的参数。此种情况下this不能省略。

this() 这种语法只能出现在构造方法第一行,表示当前构造方法调用本类其他的构造方法,目的是代码复用。

2.super

(1)说明

super能出现在实例方法和构造方法中。

super的语法是“super.”和“super()”。

super不能出现在静态方法中。

super大部分情况下是可以省略的。

super什么时候不能省略呢?
this指向的是什么,是当前对象自己。super和this类似,它指向了当前对象自己的父类型特征(也就是继承过来的那些东西)。

super和this区别是:this可以看做一个引用变量,保存了该对象的地址,是当前对象整体,而super代表的是父类型特征,是子类局部的一些东西,这些继承过来的东西已经在子类里面了,你可以输出整体this,但不能输出父类型特征super。因为super指向的东西不是一个整体,没法打印输出。

(2).详细介绍

在子类对象中,子类想访问父类的东西,可以使用“super.”的方式访问。例如:方法覆盖后,子类内部虽然重写了父类的方法,但子类也想使用一下父类的被覆盖的方法,此时可以使用“super.”的方式。当子类中出现和父类一样的属性或者方法,此时,你要想去调用父类的那个属性或者方法,此时“super.”不能省略。

this和super都只能在对象内部使用。
this代表当前对象本身,super代表当前对象的父类型特征。

“this.”是一个实例对象内部为了区分实例变量和局部变量。
而“super.”是一个实例对象为了区分是子类的成员还是父类的成员。
父类有,子类也有,子类想访问父类的,“super.”不能省略。

当子类的构造方法内第一行没有出现“super()”时,系统会默认给它加上无参数的"super()"方法。

开始讲道理:
阅读仔细的人会发现,为什么是没有“this()和super()”就写上“super()”?有“this()”就不能写上“super()”吗?那我问你,当构造方法第一行有"this()"时,你还能手动添加“super()”吗?显然不行,因为“this()”也只能出现在第一行,你不能在它前面写任何代码。所以我们又得出一个结论:构造方法中“this()”和“super()”不能同时出现,也就是“this()”和“super()”都只能出现在构造方法的第一行。

3.总结

1、this和super一样,都是对象内部的引用变量,只能出现在对象内部;

2、this指向当前对象自己,super指向当前对象的父类型特征,故this的东西比super多,也就是super是this的一部分;

3、this()和super()都只能出现在构造方法的第一行,故this()和super()方法不能共存,当一个类的构造方法第一行中没有this(),也没有super(),系统默认有super()方法;

4、this()是构造方法中调用本类其他的构造方法,super()是当前对象构造方法中去调用自己父类的构造方法。

参照:Java中super关键字及super()的使用_pipizhen_的博客-CSDN博客

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值