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