I am familiar with Objects as type parameters, for example
ArrayList<String, Integer>
TreeSet<Object>
But now I encountered a code like shown below
What does <E extends Animal> type means? Is the type having properties of both E and Animal as in the case of normal inhertiance?Code:interface Dog<E extends Animal>

