我想要一个具有抽象方法的抽象类,例如abstract void compare()
。但是它所采用的参数应根据不同子类中的不同实现而有所不同。我想知道这样做的正确方法是什么?
我不能通过在抽象类本身中编写不同的签名来重载它,因为如果这样做,它的任何子类都需要实现所有版本,而这并不是我想要的。谢谢。
最佳答案
假设每个compare()
版本都具有相同数量的参数(应该使用相同数量),则可以使用泛型,以便子类可以定义参数的类型。
abstract <I, J> void compare(I arg1, J arg2);