1 2 3 4 5 6 7 8 9
//class LionCage extends Cage<Lion> {} //class Lion extends Animal<LionCage> {} class Animal<T> { } class Bar {} public class Cage<T extends Animal<?>> extends Bar { }