Java中关键字「super」 概述

super和 this 可以对比着学习:

1,this
  • this 是一个引用,保存内存地址指向自己。
  • this 出现在实例方法中,谁调用这个实例方法,this 就代表谁,this 代表当前正在执行 这个动作的对象。
  • this 不能出现在静态方法中。
  • this 大部分情况下可以省略,在方法中区分实例变量和局部变量的时候不能省略。
  • “this(实际参数列表)”出现在构造方法第一行,通过当前的构造方法去调用本类当中 其它的构造方法。
2,super
  • 严格来说,super 其实并不是一个引用,它只是一个关键字,super代表了当前对象中 从父类继承过来的那部分特征。this指向一个独立的对象,Super并不是指向某个“独立” 的对象,假设张大明是父亲,张小明是儿子,有这样一句话:大家都说张小明的眼睛、鼻子和父亲很像。和父亲的很像。那么也就是说儿子继承了父亲的眼睛和鼻子特征,那么眼睛和鼻子肯定最终 还是长在儿子的身上。假设 this 指向张小明,那么 super就代表张小明身上的眼睛和鼻子。 换句话说 super 其实是 this 的一部分。

  • 举个栗子:张大明和张小明其实是两个独立的对象,两个对象内存方面没有联系,super 只是代表张小明对象身上的眼睛和鼻子,因为这个是从父类中继承过来的,在内存方面使用 了 super 关键字进行了标记,对于下图来说“this.眼睛”和“super.眼睛”都是访问的同一 块内存空间。

  • super 和 this 都可以使用在实例方法当中。

  • super 不能使用在静态方法当中,因为 super代表了当前对象上的父类型特征,静态方 法中没有 this,肯定也是不能使用 super的。

  • super 也有这种用法:“super(实际参数列表);”,这种用法是通过当前的构造方法调 用父类的构造方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kuchin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值