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类型,所以写入

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