我有一组 Java 类用作工具包,可以插入到许多项目中。我不想更改此工具包中的代码,因此每当我更新它或修复错误时,我都可以将其放入正在使用它的任何项目中,而无需担心本地更改。因此,如果任何本地项目需要覆盖工具包中的方法,我只需制作工具包对象的本地版本,如下所示:
文件:工具包/狗()
public class Dog(){
public void pet(){
print("scratch ruff");
}
}
文件:本地/狗()
public class Dog extends toolkit/Dog {
public void pet(){
print("rub ears");
}
}
在本地对象中,我指的是本地Dog
对象而不是工具包Dog
对象。
到目前为止效果很好,但我遇到了一个问题。工具包中的另一个类使用Dog
.
文件:工具包/DogHandler
public void careForPack( List<Dog> arg_allTheDogs ){
for( Dog fido : arg_allTheDogs ){
fido.pet();
}
}
出现的问题是系统不喜欢这些不是同一个Dog
对象。我不想在本地覆盖DogHandler
,因为我最终会覆盖我的整个工具包,这反而违背了目的。
有没有办法将的孩子(也称为)DogHandler
识别为有效?Dog
Dog