哈喽大家好!小米今天要和大家聊一个有趣的话题,就是关于面试中经常被问到的一个问题:"this" 与 "super" 之间有什么区别?对于很多即将踏入职场的小伙伴们来说,这可是一个需要了解透彻的问题哦!废话不多说,我们马上进入正题吧!
首先,我们来了解一下 this 是什么。在面向对象编程中,this 是一个关键字,代表了当前对象的引用。当我们调用一个对象的方法或访问其属性时,可以使用 this 关键字来指向当前正在操作的对象。这样一来,我们就能够在方法内部访问和修改当前对象的属性,或者调用其他方法。
比如说,我们有一个类叫做 "Person",其中有一个方法 "sayHello":

在这个例子中,this.name 就是指向了当前对象的 name 属性。如果我们创建了一个名为 "小米" 的 Person 对象,调用其 sayHello 方法,就会输出 "你好, 我叫 小米"。
接下来,让我们来了解一下 super 关键字。super 也是一个关键字,它表示父类(或者说超类)的引用。在继承关系中,子类可以使用 super 关键字来访问父类的成员,包括属性和方法。这在扩展父类的功能或者重写父类方法时非常有用。
举个例子,我们有一个父类 "Animal" 和一个子类 "Dog":

在这个例子中,Dog 类重写了父类 Animal 的 makeSound 方法,并使用 super.makeSound() 调用了父类的方法。这样一来,输出就会是:

那么,this 和 super 到底有什么区别呢?下面我们来总结一下:
通过今天的分享,我们详细地了解了 this 和 super 这两个关键字在面向对象编程中的作用和区别。希望大家能够在面试中更加自信地回答关于这两个关键字的问题啦!
记得,面试除了技术知识,沟通能力和表达清晰也是非常重要的哦!如果你对这个话题还有什么疑问,欢迎在评论区留言,我都会一一解答的~ 同时,也欢迎大家分享自己的面试经验,一起交流,共同进步!