The problem is solved by adding a type variable to the IMyDummyList interface
public interface IMyDummyList<I extends IMyDummy> {
List<I> getItems();
}
next
public abstract class Abs<T extends JsonBase, I extends IMyDummy> implements IMyDummyList<I> { public abstract List<I> getItems();}
// you can do it even like this way:
public abstract class Abs<T extends JsonBase & IMyDummy> implements IMyDummyList<T> { public abstract List<T> getItems();
}
// and last step was:
public abstract class AbsMyIntListImpl extends Abs<MyDummyClass, IMyDummyImpl> {
public abstract List<IMyDummyImpl> getItems();
}