如何理解java泛型不具备继承性,但数据具备继承性
时间: 2024-04-10 08:28:58 浏览: 297
Java泛型不具备继承性是指,如果类A是一个泛型类,类B是类A的子类,那么List<B>并不是List<A>的子类型。换句话说,泛型类型参数不会随着类的继承关系而继承。
这是因为Java泛型是通过类型擦除来实现的。在编译时,泛型类型参数会被擦除为它们的上界或者Object类型。例如,List<String>在编译时会被擦除为List<Object>。因此,List<String>和List<Object>在编译后是相同的类型,没有继承关系。
然而,数据具备继承性是指,如果类B是类A的子类,那么B类型的数据可以赋值给A类型的变量。这是因为对象的引用是可以指向其子类对象的。例如,如果类B继承自类A,那么A a = new B()是合法的。
总结起来,泛型不具备继承性是指泛型类型参数不会继承,但是数据具备继承性是指对象的引用可以指向其子类对象。
阅读全文