以下是我的问题,super
关键字仅用于继承?
在继承方面,this
和super
之间有什么区别?
答案 0 :(得分:6)
this
指的是当前的对象,即它是一个参考super
指的是超类,即它是一个范围机制当前对象与超类的对象相同的对象。如果您有Dog
扩展Animal
,并执行new Dog()
,那么您创建 1 对象,此对象都是Animal
实例和Dog
实例。
这是一个例子
class Dog extends Animal {
public void treatWell(DogSpa spa) {
spa.takeCareOf(this); // pass this object to the spa
}
public void makeSound() {
System.out.println("bark");
super.makeSound(); // call makeSound in Animal scope
}
}
答案 1 :(得分:2)
这指的是当前对象,而super指的是当前对象的父类。
考虑一下:
class Parent {
protected int value;
public void test() {
//print parent
}
}
class Child extends Parent {
public void test() {
//print child
}
private void someMethod() {
this.test();//will print child
super.test();//will print parent
}
}