仅在Override类上调用super方法

时间:2014-04-24 15:57:41

标签: java

我在Jenkins插件中看到这个代码片段,我认为它是no-op

  @Override
  public DescriptorImpl getDescriptor() {
    return (DescriptorImpl)super.getDescriptor();
  }

这可能是必要的,并且不能从代码中解决?

1 个答案:

答案 0 :(得分:6)

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

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

public class B extends A {
  @Override
  public Integer getNumber() { /* ... */ } ;
}

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