在 Java 中,当你使用一个抽象类来实现一个接口时,一件奇怪的事情发生了: 一些接口的方法可能完全丢失(即既没有抽象声明也没有实际的实现) ,但是编译器没有抱怨。
例如,考虑到界面:
public interface IAnything {
void m1();
void m2();
void m3();
}
下面的抽象类在没有警告或错误的情况下被愉快地编译:
public abstract class AbstractThing implements IAnything {
public void m1() {}
public void m3() {}
}
你能解释一下为什么吗?