标签:BlueSmallCat ArrayList blueSmallCat 通配符 extends new super public 类中
文章目录
一、我们要达到的目的
我们要通过使用extends和super两个关键字
做到:
使一个类的入参满足我们限定的范围、也就说我们可以给入参(泛型)指定范围。
使入参全部都是某个类的子类。
二、具体的实现
场景
对于集合(ArrayList)的存取
继承树
Animal -> Cat ->BlueCat ->BlueSmallCat
第一种实现(在被调用类中限定)
在被操作的类上加通配符
import java.util.ArrayList;
public class BrrayList<T extends Animal> extends ArrayList<T> {
}
public class Main {
public static void main(String[] args) {
BrrayList<BlueCat> brrayList = new BrrayList<>();
BlueCat blueCat = new BlueCat();
blueCat.setName("blueCat");
brrayList.add(blueCat);
System.out.println(brrayList.get(0).getName());
}
}
第二种实现(在调用类中限定)
public class Main {
public static void main(String[] args) {
ArrayList<? super Cat> arrayList = new ArrayList<>();
BlueSmallCat blueSmallCat = new BlueSmallCat();
blueSmallCat.setName("blueSmallCat~~");
arrayList.add(blueSmallCat);
Object object = arrayList.get(0); //强制类型转换 编译器根据通配符无法直接识别参数的具体类型
blueSmallCat = (BlueSmallCat) object;
System.out.println(blueSmallCat.getName());
}
}
标签:BlueSmallCat,ArrayList,blueSmallCat,通配符,extends,new,super,public,类中 来源: https://blog.csdn.net/GBS20200720/article/details/121188839
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。