I am trying to write something like
public class A implements B {}
and
public abstract class M
When you have interfaces in generics, you still have to use the extends
keyword.
In your case, if you know what T
will be :
public class A<T extends C> implements B<T> {}
If you don't and you simply have to implements B
with a C
type :
public class A implements B<C> {}
For the second part, once you've defined I
you can use it as is in your other generic types :
public abstract class M<I extends P> extends R<I> implements Q<I> {}
There is no implements
keyword in generic bounds. It's only extends
Furthermore - you should specify the type parameter only in the class definition, and not in supertypes. I.e.
public class A<T extends C> implements B<T> {}