I was going through Streams Documentation and had observed that Stream is a typed interface that extends Base Stream with types as T and again Stream <T> How can a interface Stream can extend Base stream interface having type bounds just as the stream interface i.e. Stream <T>? Answer Why couldn’t it? This is a trick used in many places,