導航:首頁 > 編程語言 > java繼承泛型類

java繼承泛型類

發布時間:2022-06-23 07:24:37

java 如何繼承泛型

下面一個子類繼承泛型父類的例子,可以參考一下:

//父類是一個泛型
classParent<T>{

privateTval;

publicTgetVal(){
returnval;
}

publicvoidsetVal(Tval){
this.val=val;
}
}

classChild1extendsParent<Integer>{

}

classChild2extendsParent<String>{

}

publicclassApp{

publicstaticvoidmain(String[]argv){

Child1c1=newChild1();
c1.setVal(123456);
System.out.println(c1.getVal());

Child2c2=newChild2();
c2.setVal("abcdef");
System.out.println(c2.getVal());

}
}

Ⅱ Java泛型 繼承介面相關問題

當然正確。
FifoCache是一個泛型類,V由在創建此類的實例時指定具體類型,再傳給介面中的V,而介面interface Cache<K,V>中的K已顯式指定為String類型。因此,在創建此類的實例時,介面interface Cache<K,V>中的K,V都已指定了具體的類型,當然正確。

Ⅲ 為什麼Java泛型與繼承的問題報錯

如果實現的時候沒有聲明泛型,那麼默認在實現類裡面是不存在泛型的,比如interface InterfaceC<T> {
String foo(String l);
}

public class Test implements InterfaceC {

@Override
public String foo(String l) {
return l.toString();
}
}
這時候是沒問題的,但是因為list<?>中的問號也是泛型,所以如果
interface InterfaceC<T> {
String foo(List<Integer> l);
}

public class Test implements InterfaceC {

@Override
public String foo(List<Integer> l) {
return l.toString();
}
}
這樣,那麼實現類裡面的foo方法會被認為是新方法(當然,泛型擦除後可以認為是正常的,但編譯時會認為沒有實現抽象方法)
@Override
public String foo(List l) {
// TODO Auto-generated method stub
return null;
}
而這樣就是可以的,如果實現的時候聲明了泛型的類型,那麼所有實現方法的時候把所有跟T有關的都要寫成聲明的那個類型,而list<?>因為原來就聲明了泛型類型,所以不必跟實現類中聲明的泛型類型一致,所以你的後一種方法不報錯(這一點我也覺得很牽強,希望了解的人可以解答一下)

Ⅳ 求助:java泛型的繼承與實現問題

把<week>和<year>去掉即可.這不是泛型方法的格式..

public <T> void print(T v);這里的<T>只是為了聲明T類型.

///////////////////////////////////////////////////////////

這樣寫只能算是對Override(重寫)的方法進行的Overload(重載),而並非對其進
行的Override

@Override
public <T> void print(T t){//重寫繼承自介面的方法
}

public void print(week v) {//重載print
switch(v){
case monday:... }
}
public void print(year v) {//重載print
switch(v){
case January:....
}
}

Ⅳ java中介面具有泛型,繼承的時候該怎麼處理

大部分java離得介面好像都是泛型吧?
class test implements 介面<對象(例如String,Integer等等)>

Ⅵ Java 泛型和繼承的區別

泛型是參數化類型,把運行時期可能產生的問題,提前到了編譯時期,用來保證代碼安全性!
跟繼承區別?這兩根本就不是一回事呢....
你非要把這兩個概念整在一起,那麼就有一點關聯就是如果父類帶有泛型:
子類有兩個動作可做:1:覆蓋.2:擦除

Ⅶ java泛型該怎麼深繼承 amp;怎麼獲得數組的class對象

泛型的類型是無法在運行時通過反射取得的,泛型類型在編譯成位元組碼的時候已經被虛擬機給去掉了,只是起到提示編譯器進行類型檢查的作用
用這種方法你試一試:父類:import java.lang.reflect.ParameterizedType;
public class Parent<T {
public Parent() {
ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass();
System.out.println("type==" + type);
System.out.println("entityClass==" + type.getActualTypeArguments()[0]);
System.out.println("getOwnerType==" + type.getOwnerType());
System.out.println("getRawType==" + type.getRawType());}}子類:public class Child<T extends Parent<String {

Ⅷ Java中的泛型的問題

public BaseDao(){

Class clazz=this.getClass(); //通過當前對象(this)獲取當前類

clazz.getGenericSuperclass(); //返回當前類的父類的Type

//轉換成有泛型的ParameterizedType類

ParameterizedType parameterizedType=(ParameterizedType)clazz.getGenericSuperclass();

//上面三句其實就是為了獲取BaseDao類本身

Type[] types = parameterizedType.getActualTypeArguments();

this.type=(Class<T>)types[0];

//上面兩句是獲取運行期的泛型類型,返回給當前對象(this)的type屬性

}

Ⅸ Java 繼承泛型類後相同方法名算覆寫嗎

把<week>和<year>去掉即可.這不是泛型方法的格式.. public <T> void print(T v);這里的<T>只是為了聲明T類型. /////////////////////////////////////////////////////////// 這樣寫只能算是對Override(重寫)的方法進行的Overload(重載),而並非對其進 行的Override @Override public <T> void print(T t){//重寫繼承自介面的方法 } public void print(week v) {//重載print switch(v){ case monday:... } } public void print(year v) {//重載print switch(v){ case January:.... } }

Ⅹ Java中如何實現泛型類和泛型類之間的繼承

A1的泛型參數要有兩個,否則無法確定抽象父類的泛型。
public class inher
{
public static void main(String[] args)
{
var a1 = new A1<Child, Parent>();
a1.a = new Parent();
a1.b = new Child();
a1.a.parent = 1;
a1.b.child = 2;
System.out.println(a1.a.parent);
System.out.println(a1.b.child);
}
}

abstract class A<T>
{
public T a;
}

class A1<U extends T, T> extends A<T>
{
public U b;
}

class Parent
{
public int parent;
}

class Child extends Parent
{
public int child;
}

閱讀全文

與java繼承泛型類相關的資料

熱點內容
代碼加密常用方法 瀏覽:950
安卓手機如何解除已禁用 瀏覽:396
演算法的隨機性 瀏覽:485
高中解壓體育游戲 瀏覽:532
androidstudior丟失 瀏覽:345
命令行筆記 瀏覽:737
360目標文件夾訪問拒絕 瀏覽:518
3b編程加工指令 瀏覽:789
c8051f系列單片機選型手冊 瀏覽:772
南昌php程序員 瀏覽:511
bcs命令 瀏覽:446
如何在伺服器指向域名 瀏覽:417
車床編程可以做刀嗎 瀏覽:519
ln命令源碼 瀏覽:791
用粘液做解壓手套 瀏覽:331
icloud收信伺服器地址 瀏覽:500
編程思考者 瀏覽:453
壓縮機型號用什麼氟利昂 瀏覽:553
農機空氣壓縮機 瀏覽:666
程序員下載歌曲 瀏覽:897