面试官:this和super有什么区别?this能调用到父类吗?

如题所述

第1个回答  2024-08-16
this和super都是Java中常用的关键字,它们在类的实例化和访问类的属性及方法中起着重要作用。每个类在实例化时之所以能调用到Object类,这是由它们的“功劳”决定的。

super关键字主要用来访问父类的实例属性和方法。每个类在默认情况下会有一个隐藏的无参构造方法,而super()方法会调用父类的无参构造方法。如果我们没有显式调用super()方法,那么子类会自动生成一个隐式的super()方法。我们可以从生成的字节码文件中验证这一点。

在使用super方法时,必须将其放在构造方法的第一行,否则编译器会报错。这是因为确保父类先被初始化才能执行子类的构造方法。使用super还可以访问父类的属性,比如下面的示例,子类Son成功地获取了父类中的age属性。

this关键字主要用于访问本类实例属性和方法。它会优先在本类中查找属性,如果找不到再在父类中查找。使用this最常见的场合是赋值本类属性,例如设置setter方法。如果我们不使用this关键字,会导致赋值失败。

同样,我们可以使用this()方法来调用本类的构造方法。与super()方法一样,this()方法也必须放在方法的第一行。此外,this可以访问父类的方法,就像下面的示例所示。

总结,this和super在指代对象、查找范围、本类属性赋值以及synchronized的使用上存在区别。理解这两个关键字的使用,对于编写更高效、更清晰的Java代码至关重要。

面试官:this和super有什么区别?this能调用到父类吗?
总结,this和super在指代对象、查找范围、本类属性赋值以及synchronized的使用上存在区别。理解这两个关键字的使用,对于编写更高效、更清晰的Java代码至关重要。

this和super的区别是什么?以及应用场景?
【答案】:this:当前类的引用对象。谁调用代表谁。super:父类的存储空间标识。可以理解为父类对象,谁调用代表谁父亲。应用场景:A:成员变量 this.成员变量 本类的成员变量 super.成员变量 父类的成员变量 B:构造方法 this(...) 本类的构造方法 super(...) 父类的构造方法 C:成员方法 this.成员...

在Java中super和this的区别
区别如下:1、this是对当前实例的引用,而super只是一个起辅助作用的关键字。2、在本类的一个构造函数中,通过this(参数);可以调用本类的另一个构造函数,而在子类的一个构造函数中,通过super(参数);可以调用父类的某一个构造函数。3、在子类的一个实例方法中通过super.父类方法名 (参数);可以调用...

Java继承中this和super的异同
一、指代不同 1、super:是当前对象里面的父对象的引用。2、this:指的是当前对象的引用。二、调用函数不同 1、super:调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 。2、this:调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)。三、引用对象不同 1、super:引...

JAVA 中super 和this 的区别?
1、指代上的区别 (1)super:是对当前对象中父对象的引用。(2)This:指当前对象的参考。2、引用对象上的区别 (1)super:直接父类中引用当前对象的成员(当基本成员和派生类具有相同成员时,用于访问直接父类中隐藏父类中的成员数据或函数定义)。(2)This:表示当前对象的名称(程序中容易出现...

...在主函数中怎样才能体现是用了super还是this?
super指的是父类;this指的是本类。Per是父类,Pee是子类。当你new一个子类对象时,结果是先调用父类构造函数,再调用子类构造函数。

在Java中super和this的区别
this表示当前对象,也就是当前类对象,super表示当前类的父类。举例:你定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:aa();B中也有个方法: aa();那么在A 中用this.aa()调用的就是A中定义的方法,而super.aa()调用的就是A的父类B中定义的方法aa();

java中this和super的区别
在Java中,this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数 this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this...

Java中this和super的使用详解及异同之处
这表示的意思是谁调用newObject()方法,那么就返回谁的引用。super Java中的super关键字则是表示父类对象的引用。 我们分析这句话父类对象的引用,那说明我们使用的时候只能在子类中使用,既然是对象的引用,那么我们也可以用来调用成员属性以及成员方法,当然了,这里的super关键字还能够调用父类的构造方法。 具体有如下...

super this 为什么不能同时存在
super和this用法相似,都有两种用法:1. 调用方法 2. 调用构造器 调用方法时,super与this并不相同,this是当前对象的引用变量,但是super并不是引用变量, 它只是标识要调用父类的方法。因此可以将this赋值给其他变量,不能将super赋值给其他变量。这是可以理解的,因为创建一个对象时,只是创建了当前...

相似回答
大家正在搜