在Java中,super和this都是关键字,它们在不同的场景下使用,具有不同的含义和用途。
this关键字:
this关键字用于引用当前对象的实例变量和方法。当局部变量与实例变量同名时,可以使用this来区分它们。this()来调用当前类的其他构造方法。这种方式称为构造方法链。this作为参数传递给其他方法,表示将当前对象传递给该方法。this作为返回值,表示返回当前对象。示例:
public class MyClass {
private int value;
public MyClass(int value) {
this.value = value; // 使用this区分实例变量和局部变量
}
public void setValue(int value) {
this.value = value; // 使用this区分实例变量和局部变量
}
public void print() {
System.out.println(this.value); // 使用this引用当前对象的实例变量
}
public MyClass increment() {
this.value++; // 使用this引用当前对象的实例变量
return this; // 返回当前对象
}
}
super关键字:
super关键字用于引用父类的实例变量和方法。当子类覆盖了父类的方法时,可以使用super来调用父类的方法。super()来调用父类的构造方法。这种方式称为构造方法链。示例:
public class ParentClass {
protected int value;
public ParentClass(int value) {
this.value = value;
}
public void print() {
System.out.println("Parent value: " + value);
}
}
public class ChildClass extends ParentClass {
private int value;
public ChildClass(int parentValue, int childValue) {
super(parentValue); // 使用super调用父类的构造方法
this.value = childValue;
}
@Override
public void print() {
super.print(); // 使用super调用父类的方法
System.out.println("Child value: " + value);
}
}
总结:
this用于引用当前对象的实例变量、方法和构造方法,也可以作为参数传递和返回当前对象。super用于引用父类的实例变量和方法,以及调用父类的构造方法。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。