可能重复:
具有继承接口的 Java 重载方法
我不肯定我的标题是正确的,但我相信如果不是,我会得到纠正。
我正在尝试像这样重载 helpIt 方法:
class Animal{}
class Dog extends Animal{}
class Foo implements AnimalHelper
{
@Override
public void helpAnAnimal( Animal a )
{
helpIt( a );
}
private void helpIt( Dog d )
{}
private void helpIt( Animal a )
{}
}
问题是它从不调用 helpIt(Dog d) 方法,即使动物是狗。我使用这种方法是因为类 Foo 覆盖了 AnimalHelper 的 helpAnAnimal 方法。
我在这里错过了什么吗?我希望我不必检查 instanceof 然后强制转换它。我相信这在 .Net 中是开箱即用的,但是记忆有点褪色并且可能不正确。