仅在Override类上调用super方法

Sen*_*ran 4 java

我在Jenkins插件中看到了这个代码片段,我认为它是无操作的

  @Override
  public DescriptorImpl getDescriptor() {
    return (DescriptorImpl)super.getDescriptor();
  }
Run Code Online (Sandbox Code Playgroud)

有什么理由认为这可能是必不可少的,不能从代码中解脱出来?

Niz*_*ziL 6

在覆盖期间,您可以修改返回类型(如果新返回类型是旧返回类型的子类).
例如 :

public class A {
  public Number getNumber() { /* ... */ } ;
}

public class B extends A {
  @Override
  public Integer getNumber() { /* ... */ } ;
}
Run Code Online (Sandbox Code Playgroud)

在您的示例中,super.getDescriptor()可能总是返回一个DescriptorImpl对象,因此您可以覆盖该方法以避免在代码中进行某些转换.