list<?extendsfruit> list =new
list中為什麼不能加入fruit類和fruit類的子類呢,原因是這樣的
list<? extendsfruit>表示上限是fruit,下面這樣的賦值都是合法的
list<?extendsfruit> list1 =newarraylist();
list<?extendsfruit> list2 =new
list<? extendsfruit> list3 =newarraylist();
如果list<?extendsfruit>支援add方法的方法合法的話
list1可以add fruit和所有fruit的子類
list3可以add jonathan和所有jonathan的子類
這樣的話,問題就出現了
list<?extendsfruit>所應該持有的物件是fruit的子類,而且具體是哪乙個
的話,可能list<?extendsfruit>持有的物件是newarraylist()
的話,可能list<?extendsfruit>持有的物件是newarraylist
jonathan的加入又不合法,所以list<?extendsfruit> list 不能進行add
而list<?superfruit> list 表示list持有的物件是fruit的父類,下限是 fruit,所以list中add fruit或fruit的子類是沒有問題的
泛型(二)之上限與下限
author lixueni 泛型上限實現 1.泛型類的上限 2.泛型方法的上限 3.引數的泛型上限 class upper 2.2 設定上限的泛型方法。public e say e e 3.1 引數的泛型上限 對於本類upper而言 public void show upper upper 3.2...
java泛型1(泛型上限下限巢狀)
extends 泛型的上限 即子類 1.一般用於限制操作 2.不能使用者新增資料操作上,一般都是讀取操作 3.規則 list list 不能存放 list因為它等同於list super 泛型的下限 即父類 1.一般用於限制操作 2.能使用者新增資料操作上,不能新增父物件 3.規則 不能存放 lis...
泛型的萬用字元,上限,下限以及泛型巢狀
1.萬用字元 表示型別不確定,只能用於宣告變數或者形參上,不能用在建立泛型類,泛型方法和介面上 public static void main string args public static void test list list 2.上限 extends 泛型的上限,即子類或自身 首先給出乙個...