3 回答

TA貢獻(xiàn)7條經(jīng)驗(yàn) 獲得超10個贊
這個嘛.
泛型是用來處理具有相同處理邏輯,但是處理的數(shù)據(jù)類型不同的情況.
也就是泛型類只指代了邏輯,沒指定處理的數(shù)據(jù)類型,而在創(chuàng)建泛型類的對象時候進(jìn)行動態(tài)指定數(shù)據(jù)類型.
尖括號中的內(nèi)容<E>便是你告知編譯器你創(chuàng)建的這個泛型類對象處理哪種數(shù)據(jù)類型.比如<Employee>,類型為Employee類對象.
同理繼承一個泛型類的時候你也可以為父類指定處理的類型,這樣繼承的子類就是只針對于某種特定類型進(jìn)行處理.
比如 a implements b<Employee>.
這樣a類接受的參數(shù)類型便限定為只能是Employee.
這樣你便可以看出,你上面的類只能接受Employee類型參數(shù),所以直接使用作為參數(shù)的Employee對象的成員變量就好了.
而如果你沒用在尖括號中指定特定的類型.便是使用Object類作為類型參數(shù).接受到的參數(shù)為object類型(所有類型的父類),
如果你使用Employee類型作為參數(shù)傳遞進(jìn)來,因?yàn)槭荗bject子類所以可以傳遞過來,但是在類中處理的是Object類型,
如果你想使用Employee類中的特有變量,便要將Object類型向下強(qiáng)制轉(zhuǎn)型為Employee類型對象.
比如: Employee e=(Employee)o;
這樣變可以使用Employee中的字段e.salary.

TA貢獻(xiàn)167條經(jīng)驗(yàn) 獲得超46個贊
添加回答
舉報