Скажем, у нас есть интерфейс как таковой ...
interface ICalculator<T extends CalculableObject>{
void calculate(T obj);
}
, где наш универсальный тип является абстрактным классом ...
public abstract class CalculableObject{...}
с несколькими конкретными типами ...
public class TypeA extends CalculableObject{...}
public class TypeB extends CalculableObject{...}
Как вы будете определять реализацию объекта Calculator, который требуетметод вычисления, который будет определен для нескольких типов CalculableObject?
т.е. -
public CalculatorAB<?> implements ICalculator{<br>
void calculate(TypeA obj){...}<br>
void calculate(TypeB obj){...}<br>
}