请考虑以下代码段:
class SpineWarmCollection { /* ... */ }
class Mammal extends Vertebrate implements Warmblooded {}
class Bird extends Vertebrate implements Warmblooded {}
class Reptile extends Vertebrate {}
SpineWarmCollection mammalCollection = new SpineWarmCollection<>();
SpineWarmCollection birdCollection = new SpineWarmCollection<>();
SpineWarmCollection reptileCollection = new SpineWarmCollection<>(); // Generates a compile error, since Reptiles are not warmblooded.
脊椎动物是动物分类学中的一类;然而,warmbloodedness是一个特点.由于哺乳动物和鸟类都是温血动物,因此没有单一的祖先类别可以用于战争,但它们的共同祖先脊椎动物不是.
由于T只能是扩展Vertebrate和Warmblooded的类,因此泛型可以访问在Vertebrate和Warmblooded中声明的任何方法.
你甚至不需要上课. T可以仅扩展接口,这将允许实现接口的任何类集合使用泛型,即使这些类集合彼此完全无关.