this 和super 关键字的作用
this
引用当前对象 :
在成员方法中,this代表调用该方法的当前对象 。 可以通过this来访问当前对象的成员变量和成员方法。
package JavaYF ;
public class Person {
private String name;
private int age;
public Person ( String name, int age) {
this . name= name;
this . age= age;
}
public void displayInfo ( ) {
System . out. println ( "Name: " + this . name + ", Age: " + this . age) ;
}
}
作为方法的参数传递当前对象 :
package JavaYF ;
public class SomeClass {
void someMethod ( SomeClass someClass) {
}
void anotherMethod ( ) {
someMethod ( this ) ;
}
}
调用本类的其他构造方法 :
在一个类的构造方法中,可以使用this来调用同一类中的其他构造方法 ,必须放在构造方法的第一行 。
package JavaYF ;
public class Student {
private String name;
private int age;
public Student ( ) {
this ( "Unknown" , 0 ) ;
}
public Student ( String name, int age) {
this . name= name;
this . age= age;
}
}
super
调用父类的构造方法 :
在子类的构造方法中,可以使用super来调用父类的构造方法 ,必须放在子类构造方法的第一行 。 这有助于确保在创建子类对象时,先正确地初始化父类部分。
package JavaYF ;
class Parent {
public Parent ( ) {
System . out. println ( "Parent" ) ;
}
}
public class Child extends Parent {
public Child ( ) {
super ( ) ;
System . out. println ( "Child" ) ;
}
}
访问父类的成员变量和方法 :
当子类中定义了与父类同名的成员变量或方法 时,可以使用super来明确地访问父类中的成员变量或方法。
class Parent {
int num= 10 ;
void show ( ) {
System . out. println ( "Parent method" ) ;
}
}
public class Child extends Parent {
int num = 20 ;
void display ( ) {
System . out. println ( "Parent num = " + super . num) ;
System . out. println ( "Child num = " + this . num) ;
super . show ( ) ;
}
}
总结
this
关键字用于引用当前对象的实例变量和方法super
关键字用于引用父类(超类)的变量和方法