Your class definition should indicate that you are extending the parent class as a whole.
abstract class Def<T> extends Abc<T>
Otherwise, the compiler more or less assumes that you extend Abc<object> , so the method signature that includes the T parameter does not match that of the parent class (since it uses a different T parameter).
source share