用抽象方法覆盖默认接口方法
Overriding default interface method with abstract method
我觉得它很奇怪,想知道它是否是经常使用的东西。什么时候有用?
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);
}
当然可以。该名称本身表明它是 abstract
。您可以这样做,因为该摘要 class 的实现 class 必须覆盖该方法。
当你决定做一个抽象的时候,你不需要去实现。
这在默认接口方法之前存在。例如,一个摘要 class 可以使
@Override
abstract public int hashCode();
强制子classes 为hashCode
提供实现,可能是因为摘要class.
强加了额外的要求
我觉得它很奇怪,想知道它是否是经常使用的东西。什么时候有用?
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);
}
当然可以。该名称本身表明它是 abstract
。您可以这样做,因为该摘要 class 的实现 class 必须覆盖该方法。
当你决定做一个抽象的时候,你不需要去实现。
这在默认接口方法之前存在。例如,一个摘要 class 可以使
@Override
abstract public int hashCode();
强制子classes 为hashCode
提供实现,可能是因为摘要class.