This is a definition of an abstract class (obviously) with three typical parameters.
The first parameter P has a restriction on the fact that it must have type (or which extends) class / interface B, which has two common parameters (without restrictions on them) so that it can be like
public class B<T1, T2> { }
The second and third parameters, namely Input and Output, have no restrictions.
source share