Java 用抽象方法重写默认接口方法
我觉得很奇怪,想知道这是不是经常使用的东西。什么时候有用Java 用抽象方法重写默认接口方法,java,overriding,abstract,Java,Overriding,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 pub
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);
}
你当然可以这么做。名称本身表明它是
抽象的
。您可以这样做,因为该抽象类的实现类必须重写该方法
当您决定成为抽象时,不需要实现。这在默认接口方法之前就存在。例如,一个抽象类可以
@Override
abstract public int hashCode();
强制子类为
hashCode
提供实现,可能是因为抽象类强加了额外的要求。您可以测试它是否使用javac进行编译…@luigimendoza我做了,它编译了。它是否经常使用,什么时候有用?如果允许的话,你的问题不应该是。您正在请求使用此设计的用例。我建议你编辑这个问题,否则答案会是:是的,这是允许的。所以实现InterC的类,比如InterD,必须给出该方法的实现?假设我们有一个实现InterD的InterE,InterE可以使方法再次抽象吗?