假设有这样的代码:
F f = new G();
f.do();
f.cook();
...
F 是一个接口,G 是 F 的一个实现类(也叫具体类/派生类)。
如果现在需要另外一个实现类 H
采用其他技术实现接口 F 的所有抽象方法,那么只要修改一条代码:
// 只修改这条代码
F f = new H();// 方法调用的代码都不要修改
f.do();
f.cook();
...
因为 G、H 都是接口 F 的实现类,所以都有 do()
、cook()
方法,只是方法的实现技术或者逻辑不同,这只是内部代码的问题,不影响外部的正常调用。所以 f.do()
、f.cook()
等相关代码都不需要修改。