Java泛型中extends和super

记录:
        查询与理解.
java中泛型匹配:
        表示类型的上界,表示参数化类型的可能是T或是T的子类.
        表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型)直至Object;
PECS原则:PECS(Producer Extends Consumer Super)原则
        1.频繁往外读取内容的,适合用上界Extends.
        2.频繁往里插入的,适合用下界Super.
1. Basket

public class Basket {
  private T item;
  public Basket(T t) {
  	item = t;
  }
  public void set(T t) {
  	item = t;
  }
  public T get() {
  	return item;
  }
}

2. Vegetables

public class Vegetables {
  public void getInfo() {
  	System.out.println("Vegetables输出.");
  }
}

3. Carrot

public class Carrot  extends Vegetables{
  public void getInfo() {
  	System.out.println("Carrot输出.");
  }
}

4. Eggplant

public class Eggplant extends Vegetables {
  public void getInfo() {
  	System.out.println("Eggplant输出.");
  }
}

5. 测试

public class TestGenericMain {
  public static void main(String []args){
  	System.out.println("测试开始......");
  	/**1.  Vegetables本身或者子类*/
  	Basket basket1 = new Basket(new Carrot());
  	Vegetables vegetables1 = basket1.get();
  	Carrot carrot1  = (Carrot) basket1.get();
  	/**2.  Vegetables本身或者超类*/
  	Basket basket2 = new Basket(new Vegetables());
  	Eggplant eggplant1 = new Eggplant();
  	basket2.set(eggplant1);
  	Basket basket3 = new Basket(new Object());
  	Eggplant eggplant2 = new Eggplant();
  	basket3.set(eggplant2);
  	System.out.println("测试结束......");
  }
} 
  

以上,感谢.

你可能感兴趣的:(Java)