为什么即使语句2无效,语句1仍然有效。我可以理解声明2无效的原因,但为什么同样的原则不适用于声明1?ArrayList泛型:子类
import java.util.*;
public class CollectionTest
{
public static void main(String[] args)
{
ArrayList<ObjectB> test = new ArrayList<ObjectA>(); //statement 1
ObjectB B = new ObjectA("aaa");//statement 2
}
}
class ObjectA
{
String a;
ObjectA(String str) {
a = str;
}
}
class ObjectB extends ObjectA
{
String b;
ObjectB(String str) {
super(str);
b = str;
}
}
你正在比较两个(无效)不同的东西。如果你想做类比,你应该这样定义你的数组列表:ArrayList test = new ArrayList ();' –
Maroun
两者都是无效的。 –