这是比较简单的一节,直接上代码:
interface Payable<T> {}
class Employee implements Payable<Employee>{}
class Hourly extends Employee implements Payable<Hourly>{}
上面的代码将无法通过编译,因为类型擦除的原因让Hourly实现了两个同样的Payable接口。但是下面的代码就能够通过编译:
interface Payable<T> {}
class Employee implements Payable{}
class Hourly extends Employee implements Payable{}
但是这样程序会警告你对于泛型接口使用的是它的原始类型。