Improves generation of types with abstract super interfaces

- better handling of method overrides
- resolve type variables bound in parameterized declarations