哈喽大家好!小米今天要和大家聊一个有趣的话题,就是关于面试中经常被问到的一个问题:"this" 与 "super" 之间有什么区别?对于很多即将踏入职场的小伙伴们来说,这可是一个需要了解透彻的问题哦!废话不多说,我们马上进入正题吧!
this 是什么?
首先,我们来了解一下 this 是什么。在面向对象编程中,this 是一个关键字,代表了当前对象的引用。当我们调用一个对象的方法或访问其属性时,可以使用 this 关键字来指向当前正在操作的对象。这样一来,我们就能够在方法内部访问和修改当前对象的属性,或者调用其他方法。
比如说,我们有一个类叫做 "Person",其中有一个方法 "sayHello":
在这个例子中,this.name 就是指向了当前对象的 name 属性。如果我们创建了一个名为 "小米" 的 Person 对象,调用其 sayHello 方法,就会输出 "你好, 我叫 小米"。
super 又是什么?
接下来,让我们来了解一下 super 关键字。super 也是一个关键字,它表示父类(或者说超类)的引用。在继承关系中,子类可以使用 super 关键字来访问父类的成员,包括属性和方法。这在扩展父类的功能或者重写父类方法时非常有用。
举个例子,我们有一个父类 "Animal" 和一个子类 "Dog":
在这个例子中,Dog 类重写了父类 Animal 的 makeSound 方法,并使用 super.makeSound() 调用了父类的方法。这样一来,输出就会是:
this 和 super 的区别
那么,this 和 super 到底有什么区别呢?下面我们来总结一下:
- 作用对象不同:this 作用于当前对象,用于访问自身的属性和方法;而 super 作用于父类,用于访问父类的属性和方法。
- 使用场景不同:this 常用于方法内部,用于区分局部变量和实例变量,或者在构造方法中调用其他构造方法;super 常用于子类重写父类方法时,以及在子类构造方法中调用父类构造方法。
- 关联对象不同:this 关联的是当前对象,它指向调用方法的那个对象;而 super 关联的是父类对象,它用于在子类中访问父类的成员。
- 调用方法不同:this 调用的是当前类的方法;super 调用的是父类的方法。
END
通过今天的分享,我们详细地了解了 this 和 super 这两个关键字在面向对象编程中的作用和区别。希望大家能够在面试中更加自信地回答关于这两个关键字的问题啦!
记得,面试除了技术知识,沟通能力和表达清晰也是非常重要的哦!如果你对这个话题还有什么疑问,欢迎在评论区留言,我都会一一解答的~ 同时,也欢迎大家分享自己的面试经验,一起交流,共同进步!