Java 在子类中处理不需要的参数?(爪哇)

Java 在子类中处理不需要的参数?(爪哇),java,interface,polymorphism,Java,Interface,Polymorphism,为了简单起见,假设您有4个这样的类: Dog (Interface) - has method "walk(SomeObject a, SomeOtherObj b)" Husky - implements Dog Chihuahua - implements Dog DogWalker - has a variable Dog someDog, and calls the walk method 我们只想在DogWalker中使用相同的方法在任何种类的狗上运行walk(),但假设Chihua

为了简单起见,假设您有4个这样的类:

Dog (Interface) - has method "walk(SomeObject a, SomeOtherObj b)"
Husky - implements Dog
Chihuahua - implements Dog
DogWalker - has a variable Dog someDog, and calls the walk method
我们只想在DogWalker中使用相同的方法在任何种类的狗上运行walk(),但假设Chihuahua只需要/使用第一个参数,而Husky在其walk方法中需要两个参数

我不想在接口中创建单独的方法,因为我只想使用one方法,但我只想使用one方法。我知道我可以“忽略”吉娃娃的walk方法中的额外参数,但是有没有更干净的方法呢?在真正的代码中,我几乎可以更改这些类的任何内容(实际上不是关于狗的…),除了我需要DogWalker能够接受任何类型的狗并调用相同的方法,而不管狗的类型如何


任何提示都将不胜感激!谢谢

如果合法地存在两种不同的
walk
方法,它们具有不同的参数列表,并且其中一种适用于子集,则层次结构是错误的


您需要两个接口
Walkable1
Walkable2
(虚构名称,在“现实生活”中使用更好的名称);然后,使用第一个
行走
方法的狗实现一个接口,需要第二个
行走
的狗使用第二个接口。如果一只狗可以同时实现两种方法,那么它可以同时实现两种接口。

如果你能告诉我们真正的代码是什么样子,那么你可以改变设计,这取决于:如果你的两种方法是
增量(Arg a)
添加(Arg a,Arg b)
如Jim Garrison在回答中所说,最好有单独的接口。