建站

质量为本、客户为根、勇于拼搏、务实创新

< 返回建站列表

java中super与this的区分是甚么

发布时间:2023-07-13

Java中super与this的区分

在Java中,super与this都是关键字,用于指代当前履行代码的对象。虽然它们都能够访问类中的成员变量和成员方法,但是它们之间却有很多区分。

1.super关键字

super关键字用于访问父类中的成员变量和成员方法。它可以在子类中调用父类的构造函数、父类中被子类覆盖的方法和父类中未被子类覆盖的方法。

1.1访问父类中的属性和方法

使用super可以在子类中访问父类中被子类覆盖的方法和属性。例如:

classAnimal{Stringname=动物;publicvoidsound(){System.out.println(动物的叫声);}}classCatextendsAnimal{Stringname=猫;publicvoidsound(){System.out.println(猫的叫声);}publicvoidmakeSound(){super.sound();}publicvoidanimalName(){System.out.println(super.name);}}publicclassTest{publicstaticvoidmain(String[]args){Catcat=newCat();cat.makeSound();//调用父类中的方法cat.animalName();//调用父类中的属性}}

1.2访问父类中的构造函数

使用super可以在子类构造函数中调用父类的构造函数。这在子类继承的父类中存在带有参数的构造函数时非常有用。例如:

classAnimal{Stringname;publicAnimal(Stringname){this.name=name;}}classCatextendsAnimal{Stringcolor;publicCat(Stringname,Stringcolor){super(name);this.color=color;}publicvoiddisplay(){System.out.println(名字:+super.name+,色彩:+this.color);}}publicclassTest{publicstaticvoidmain(String[]args){Catcat=newCat(汤姆,黑色);cat.display();//名字:汤姆,色彩:黑色}}

2.this关键字

this关键字用于援用当前对象的实例。它可以用于访问当前对象的成员属性和方法,创建对象的援用和在构造函数之间进行调用。另外,this还可以用于辨别局部变量和成员变量。

3.区分与联系

虽然super和this在很多情况下都能够访问到相同的成员变量和成员方法,但是它们之间或者存在很多区分的。

3.1作用域区别

this关键字只能在类中使用,并且只能用于援用当前对象的实例。super关键字可以在子类中使用,并且可以用于援用父类中的成员变量和成员方法。

3.2访问权限区别

this关键字可以访问当前对象中的所有成员方法和成员属性,而super关键字只能访问父类中的成员方法和成员属性。

3.3构造函数中的使用区别

this关键字可以用于在一个构造函数中调用该类的另外一个构造函数,用于避免代码冗余。super关键字用于访问父类的构造函数,并扩大子类的行动。

3.4辨别成员变量与局部变量

在类中定义的成员变量与方法参数或局部变量可能存在相同的名称。此时,this关键字可以用于辨别成员变量与局部变量或方法参数,而super没法辨别相同名称的变量和参数。

4.总结

在Java中,super与this关键字都是比较重要的关键字,它们在使用方面略有区别,但目的都是为了方便访问类中的成员变量和方法。使用super关键字可以访问父类中的成员变量和方法,使用this关键字可以访问当前对象的实例,这在代码编写进程中是非常有用的。

使用super关键字需要注意的是,它只能用于在子类中访问父类的成员变量和成员方法,并在构造函数中用于调用父类的构造函数。而this关键字主要用于辨别成员变量和方法参数或局部变量,并且在代码重用中有很大的作用。

桂>哥>网>络www.guIgege.cn

TikTok千粉号购买平台:https://tiktokusername.com/