Java 泛型 泛型規範 extends 和 super 的區別?

一、舉例的類之間的關係

1.Fruit 和 Meat 繼承 extend Food
2.Apple 和 Banana 繼承 Fruit
3.Pork 和 Beef 繼承 Meat.
在這裏插入圖片描述

二、<?Extends Fruit >上限.

1.使用的類型只能是 Fruit或者 Fruit 的子類 如圖

在這裏插入圖片描述

2.代碼實例

三、<?Super Fruit> 下限

1.Fruit 或者 Fruit的 父類(如圖)

在這裏插入圖片描述

2.代碼實例:

四、PECS原則 (Producer Extends ,Consumer Super)

1.PE:讀取內容頻繁get():使用 Extends

1.讀取內容,比如說 Fruit有一個getName()方法,printName()獲取所有Fruit 或者子類的名稱。頻繁讀取Fruit或者子類的name,就可以使用<? Extends Fruit>限定方法。

2.寫入內容,因爲不知道寫入內容的具體的類型就會編譯錯誤

2. CS:寫入內容頻繁add():使用 Super

1.下限寫入內容:至少知道寫入的類型是 Fruit類型,所以寫入

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章