为什么实现接口的抽象类会错过接口方法之一的声明/实现?
2022-08-31 08:10:38
当你使用抽象类来实现接口时,Java中会发生一件奇怪的事情:接口的某些方法可能完全缺失(即既不存在抽象声明也不存在实际实现),但编译器不会抱怨。
例如,给定接口:
public interface IAnything {
void m1();
void m2();
void m3();
}
下面的抽象类在没有警告或错误的情况下被愉快地编译:
public abstract class AbstractThing implements IAnything {
public void m1() {}
public void m3() {}
}
你能解释一下为什么吗?