Java泛型 繼承中類型變數的關係

來源:互聯網
上載者:User

標籤:java   泛型   繼承   

通過例子來看泛型類在繼承中過程中類型變數應該具有怎樣的關係。

首先給出幾個輔助類:

package generic;public class Animal {    }


package generic;public class Person extends Animal {private String name;public Person(String name) {super();this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Person [name=" + name + "]";}public Integer printAndReturn() {return 1;}}

package generic;public class Student extends Person {private String studentNumber;public Student(String name, String studentNumber) {super(name);this.studentNumber = studentNumber;}public String getStudentNumber() {return studentNumber;}public void setStudentNumber(String studentNumber) {this.studentNumber = studentNumber;}@Overridepublic String toString() {return "Student [studentNumber=" + studentNumber + ", name="+ getName() + "]";}}

package generic;public class Building {private String name;public Building(String name) {super();this.name = name;}}

package generic;/** * @version 1.00 2004-05-10 * @author Cay Horstmann */public class Pair<T extends Person> {   private T first;   private T second;   public Pair() { first = null; second = null; }   public Pair(T first, T second) { this.first = first;  this.second = second; }   public T getFirst() { return first; }   public T getSecond() { return second; }   public void setFirst(T newValue) { first = newValue; }   public void setSecond(T newValue) { second = newValue; }   }


1.子類的類型變數表示的範圍必須與父類一樣或者是父類的子集

package generic;public class PariSon<T extends Person> extends Pair<T> {}


public class PariSon<T extends Student> extends Pair<T> {}

2.當父類用具體類型代替類型變數時,具體變數必須是類型變數表示的範圍內的一個元素

package generic;public class PariSon extends Pair<Person> {}

package generic;public class PariSon extends Pair<Student> {}


Java泛型 繼承中類型變數的關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.