Java 中this和super都是关键字,用于表示不同的对象。
this
this 关键字代表当前对象,即指向当前对象的引用。通常用于以下情况:
- 分清成员变量和局部变量同名的情况:使用 this 来引用当前对象的成员变量。
示例:
public class Person {
private String name; // 成员变量 name
public void setName(String name) {
this.name = name; // 使用 this 引用当前对象的成员变量 name
}
}
- 在构造方法中调用其他的构造方法:使用 this 关键字加上参数列表来调用其他的构造方法。
示例:
public class Car {
private String brand;
private String color;
public Car(String brand) {
this(brand,"Red"); // 调用另一个构造方法
}
public Car (String brand, String color) {
this.brand = brand;
this.color = color;
}
}
super
super 是表示父类对象的关键字,可以调用父类的构造方法、成员方法、成员变量。通常用于以下情况:
- 在子类中调用父类的构造方法进行初始化操作:使用 super 关键字加上参数列表来调用父类的构造方法。
示例:
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age); // 调用父类的构造方法进行初始化
this.school = school;
}
}
- 在子类中调用父类的方法或成员变量:使用 super 关键字来调用父类的方法或成员变量。
示例:
public class Vehicle {
protected String brand;
public void run() {
System.out.println("Vehicle is running...");
}
}
public class Car extends Vehicle {
private int price;
public void run() {
super.run(); // 调用父类的 run 方法
System.out.println("Car is running...");
}
public void setBrand(String brand) {
super.brand = brand; // 使用 super 引用父类的成员变量 brand
}
}
this能否调用到父类使用
this 关键字仅能在当前对象中使用,不能调用父类的方法或成员变量。如果想要使用父类的方法或成员变量,应该使用 super 关键字。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中this和super的区别及this能否调用到父类使用 - Python技术站