รับรหัสต่อไปนี้:
public class Test{
static class Bird{}
static class Sparrow extends Bird{}
public static void main(String args[]){
List<? extends Bird> list = new ArrayList<Bird>();
list.add(new Bird()); //Does not compile ...line 1
list.add(new Sparrow());//Does not compile ...line 2
}
}
ใครช่วยอธิบายได้ไหมว่าทำไมฉันไม่สามารถเพิ่มวัตถุของ new Bird()
และวัตถุของ new Sparrow()
ลงในรายการได้ ฉันคาดหวังว่าบรรทัด 1 และบรรทัด 2 จะคอมไพล์เนื่องจากคลาส Sparrow
เป็นคลาสย่อยของ Bird
และ Bird
ก็คือตัวมันเอง