归并排序(逆序数问题)详解
class Fruit{}
class Apple extends Fruit{}
class Plate<T>{
private T item;
public Plate(){}
public Plate(T t){
item=t;
}
public void set(T t){
item=t;
}
public T get(){
return item;
}
}
public class GenericTest {
public static void main(String[] args) {
Fruit a=new Fruit();
Fruit b=new Apple();
Plate<Fruit> c=new Plate<Fruit>();
//Apple是Fruit的子类,但Plate<Apple>不是Plate<Fruit>的子类
//Plate<Fruit> d=new Plate<Apple>();
//? extends Fruit就代表Fruit或Fruit的子类
Plate<? extends Fruit> e=new Plate<Apple>();
Plate<? extends Fruit> f=new Plate<>();
//无法set/add,类型不匹配,GitHub Top 微信小程序
编译器不知道具体是在处理哪个子类。
//e.set(new Fruit());
//e.set(new Apple());
Plate<? extends Fruit> g=new Plate<Apple>(new Apple());
//可以get,可以强制转型为Fruit子类。
Apple h= (Apple) g.get();
Fruit i=g.get();
//? super Fruit代表Fruit或Fruit的父类
Plate<? super Fruit> j=new Plate<>();
//可以set存入Fruit或Fruit的子类,会被统一成Fruit的某一个父类。
j.set(new Fruit());
j.set(new Apple());
//可以get,但只能返回Object,因为不知道具体是哪个父类
Object k= j.get();
}
}
学_汇编语言_王爽版 要点采集笔记(未完待续…)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END