新建一个子类BaseStudent 继承其父类Student
package com.soar.bean;
public class BaseStudent extends Student {
public BaseStudent(String name, int age) {
super(name, age);
}
public BaseStudent() {
}
}
新建一个Genric类
package com.saor.collections;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.TreeSet;
import com.soar.bean.BaseStudent;
import com.soar.bean.Student;
public class Demo2_Genric {
/*
* 泛型固定下边界
* ? super E
*
* 泛型固定上边界
* ? extends E
*/
public static void main(String[] args) {
//demo_extends();
TreeSet<Student> ts1 = new TreeSet<>(new CompareByAge());
ts1.add(new Student("张三",33));
ts1.add(new Student("李四",13));
ts1.add(new Student("王五",23));
ts1.add(new Student("赵六",43));
TreeSet<BaseStudent> ts2 = new TreeSet<>(new CompareByAge());
ts2.add(new BaseStudent("张三",33));
ts2.add(new BaseStudent("李四",13));
ts2.add(new BaseStudent("王五",23));
ts2.add(new BaseStudent("赵六",43));
//使用了父类的比较器
System.out.println(ts2);
}
private static void demo_extends() {
//父类 →固定了上边界E (Student)
ArrayList<Student> list1 = new ArrayList<>();
list1.add(new Student("张三",23));
list1.add(new Student("李四",24));
//子类→将上边界的E的子类(BaseStudent)添加到父类(Student)中,?代表的是E的子类
ArrayList<BaseStudent> list2 = new ArrayList<>();
list2.add(new BaseStudent("王五",25));
list2.add(new BaseStudent("赵六",26));
list1.addAll(list2);
}
}
class CompareByAge implements Comparator<Student>{
@Override
public int compare(Student s1, Student s2) {
int num = s1.getAge() - s2.getAge();
return num ==0 ? s1.getName().compareTo(s2.getName()) : num;
}
}
本文介绍了一个Java泛型的应用实例,通过定义泛型类和使用泛型集合,演示了如何利用泛型来提高代码的复用性和安全性。同时,还展示了如何在Java中实现类的继承,并结合泛型进行应用。
172万+

被折叠的 条评论
为什么被折叠?



