JAVASE官方教程:接口之重写接口(5)
程序员文章站
2022-03-02 10:12:30
...
考虑你曾经开发的某个接口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); }
这样用户就可以选择是使用旧的接口还是升级到新的接口.