考虑你曾经开发的某个接口DoIt:
public interface DoIt {
void doSomething(int i, double x);
int doSomethingElse(String s);
}
假如,在将来的某个时候,你想为接口增加第三个方法,所以接口变成了:
public interface DoIt {
void doSomething(int i, double x);
int doSomethingElse(String s);
boolean didItWork(int i, double x, String s);
}
如果你这样改写的话,所有实现了旧的DoIt接口的类都将不能正常工作,因为他们没有实现第三个方法.依赖这个接口的程序员肯定会大声抱怨.
你可以创建一个新的接口DoItPlus接口继承DoIt:
public interface DoItPlus extends DoIt {
boolean didItWork(int i, double x, String s);
}
这样用户就可以选择是使用旧的接口还是升级到新的接口.