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

2021-07-03 04:38:44 字數 1481 閱讀 4362

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

首先給出幾個輔助類:

package generic;

public class animal

package generic;

public class person extends animal

public string getname()

public void setname(string name)

@override

public string tostring()

public integer printandreturn()

}

package generic;

public class student extends person

public string getstudentnumber()

public void setstudentnumber(string studentnumber)

@override

public string tostring()

}

package generic;

public class building

}

package generic;

/** * @version 1.00 2004-05-10

* @author cay horstmann

*/public class pair

public pair(t first, t second)

public t getfirst()

public t getsecond()

public void setfirst(t newvalue)

public void setsecond(t newvalue)

}

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

package generic;

public class parisonextends pair

public class parisonextends pair

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

package generic;

public class parison extends pair

package generic;

public class parison extends pair

Java泛型 型別變數的限定

有時候,類和方法需要對型別變數加以約束,比如你有乙個方法,你只希望它接收某個特定型別及其子型別作為引數。下面就舉乙個方法限定接收引數的型別的例子來說明如何限定型別變數。首先有幾個簡單的輔助類 package generic public class person extends animal pub...

Java泛型 繼承

泛型類的繼承 package com.ws.generic 泛型父類,子類為富二代 1 保留父類泛型 子類為泛型 2 不保留父類泛型 子類按需實現 屬性及方法 型別 隨位置而定 1 子類重寫方法的型別 隨父類而定 子類新增方法的型別 隨子類而定 2 子類中使用父類的屬性 隨父類而定 子類中使用自己的...

Java泛型子類繼承呼叫

假設有這麼乙個需求 在乙個函式中傳入乙個物件,並給出這個物件的類及其乙個子類,如果這個物件是其子類的例項,那麼就執行子類的方法,如果不能強轉那麼就執行這個父類本身的方法。或者這樣的需求 還是給出乙個物件,但是給出類及其子類,要求為了 可讀性將子類方法和父類方法分開寫。下面是乙個泛型寫法。以image...