java this 子类调父类,父类再调用子类已覆盖的方法及属性(又一次理解)
时间: 2023-10-02 11:13:10 浏览: 77
在Java中,使用关键字`super`可以调用父类的方法或属性,而使用`this`关键字可以引用当前对象的属性或方法。当子类继承了父类并覆盖了父类的方法时,如果想要在父类中调用子类已覆盖的方法,可以使用`super`关键字。
示例代码如下:
```java
class Parent {
void method() {
System.out.println("父类方法");
}
}
class Child extends Parent {
@Override
void method() {
System.out.println("子类方法");
}
void callParentMethod() {
super.method(); // 调用父类方法
}
void callChildMethod() {
this.method(); // 调用子类方法
}
void callOverriddenMethod() {
super.method(); // 调用父类方法
this.method(); // 调用子类方法
}
}
```
在上述示例代码中,子类`Child`覆盖了父类`Parent`的方法`method()`。在子类中,可以使用`super.method()`调用父类的方法,也可以使用`this.method()`调用子类的方法。如果想要在父类中调用子类已覆盖的方法,可以在子类中定义另一个方法,该方法中先使用`super.method()`调用父类的方法,再使用`this.method()`调用子类的方法。
阅读全文