Java"部分"覆盖

Jla*_*Jla 5 java overriding

在Java中覆盖方法时,可以调用"原始"方法.例如:

public class A extends B{

  @Override
  public void foo(){
    System.out.println("yep");
    // Then execute foo() as it's defined in B
  }

}
Run Code Online (Sandbox Code Playgroud)

And*_*s_D 12

public class A extends B{

  @Override
  public void foo(){
    System.out.println("yep");
    super.foo(); // calls the method implemented in B
  }  
}
Run Code Online (Sandbox Code Playgroud)


jjn*_*guy 7

只需调用super.methodName()您的超类型的方法版本.

public class A extends B{
  @Override
  public void foo(){
    System.out.println("yep");
    super.foo(); // Here you call the supertype's foo()
  }
}
Run Code Online (Sandbox Code Playgroud)

此外,这不是"部分"覆盖该方法.您完全覆盖了它,但您只是使用了一些父级功能.