在抽象中重载抽象方法 class
Overload abstract methods in abstract class
我想要一个具有抽象方法的抽象 class,比如说 abstract void compare()
。但是它所带的参数应该根据不同subclasses中的不同实现而有所不同。我想知道这样做的正确方法是什么?
我不能通过在抽象 class 本身中编写它的不同签名来重载它,因为如果我这样做,它的任何子 classes 都需要实现所有版本,这这不是我想要的。谢谢
假设 compare()
的每个版本都具有相同数量的参数(它们应该如此),您可以使用泛型以便子类可以定义参数的类型。
abstract <I, J> void compare(I arg1, J arg2);
你应该使用泛型来做到这一点:
public abstract class AbstractClass<T>{
public abstract void compare(T element);
}
在实现中你这样写:
Public class MyImpl extends AbstractClass<SpecificType>{
public void compare(SpecificType elemental{
// do stuff
}
}
我想要一个具有抽象方法的抽象 class,比如说 abstract void compare()
。但是它所带的参数应该根据不同subclasses中的不同实现而有所不同。我想知道这样做的正确方法是什么?
我不能通过在抽象 class 本身中编写它的不同签名来重载它,因为如果我这样做,它的任何子 classes 都需要实现所有版本,这这不是我想要的。谢谢
假设 compare()
的每个版本都具有相同数量的参数(它们应该如此),您可以使用泛型以便子类可以定义参数的类型。
abstract <I, J> void compare(I arg1, J arg2);
你应该使用泛型来做到这一点:
public abstract class AbstractClass<T>{
public abstract void compare(T element);
}
在实现中你这样写:
Public class MyImpl extends AbstractClass<SpecificType>{
public void compare(SpecificType elemental{
// do stuff
}
}