用抽象方法覆盖默认接口方法

时间:2015-09-01 17:21:29

标签: java override abstract

我发现它很奇怪,并且想知道它是否经常被使用。什么时候有用?

public interface InterA { 
   Object getInfo() throws Exception1; 
}
public interface InterB {
   public default Integer getInfo(Object s) {return 67;} 
}

public interface InterC extends InterA, InterB {
   @Override public abstract Integer getInfo(Object s);
}

2 个答案:

答案 0 :(得分:3)

这在默认接口方法之前存在。例如,抽象类可以生成

    @Override
    abstract public int hashCode();

强制子类为hashCode提供实现,可能是因为抽象类强加了额外的要求。

答案 1 :(得分:1)

当然你可以这样做。名称本身告诉它abstract。您可以这样做,因为该抽象类的实现类必须覆盖该方法。

当您决定成为摘要时,您无需实施。