Java super和this在继承性方面有什么区别?
这里是我的问题,超级关键字只在继承的情况下使用?Java super和this在继承性方面有什么区别?,java,Java,这里是我的问题,超级关键字只在继承的情况下使用? 在继承性方面,this和super有什么区别?这是指当前对象,而super是指当前对象的父类 考虑这一点: class Parent { protected int value; public void test() { //print parent } } class Child extends Parent { public void test() { //print chil
在继承性方面,this和super有什么区别?这是指当前对象,而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
}
}
这是指当前对象,即它是一个引用
super指的是super类,即它是一种作用域机制
当前对象与超类的对象是同一个对象。如果有一只狗扩展了Animal,并创建了一个新的Dog,则创建一个对象,该对象既是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
}
}
你读了吗?我只是举了个例子来理解目的。我并没有深入探讨为什么要继承或创作等等。