java List的<>中为什么不支持将子类对象传递给父类参数?

2025-04-13 22:01:35
推荐回答(1个)
回答(1):

temp1里面对泛型T做明标示,说明T是继承Text的,所以可行
ArrayList
和ArrayList
是两个不同的泛型,两者没有什么共同联系,所以你传值的时候temp2(clist)类型不同,(虽然这两个泛型集合操作里面的元素时可以用Text或者ChildText)
(好比苹果和水果有关系,但是用盒子将苹果和水果分别装起来,这两个盒子就没有任何关系了,一个人在外边看盒子就看不出里面装的什么,但是还是能够往这个盒子里拿出东西或者装苹果/水果,temp1相当于在这个盒子贴上标签)
temp3可以是因为里面的Text类型的子类ChildText也属于Text,能当Text来用