The way you are trying to apply a new Super object to the type of object that extended it is incorrect.
, Sub1. Super Super, , Sub1, ; Sub1 Sub1. , Sub1 . , , Sub1 , Super . , .
, . S- Super, Super- .
public <S extends Super> S get(Class<S> clazz) throws IllegalAccessException, InstantiationException {
S s = clazz.newInstance();
return s;
}
, - , , clazz.newInstance()
. , , Super.