簡體   English   中英

將繼承的成員完善為Java中的特定子類

[英]Refining inherited member to a specific subclass in Java

我有一種情況,我認為使用繼承會很有意義,但是我不確定如何最好地在Java中執行它。 我知道您不能覆蓋Java中的成員,但是如果可以的話,我希望我的案例可以這樣工作:

public class Y {...}

public class Ytype1 extends Y {...}

public class X {
    public List<Y> ys;
    ...
}

public class Xtype1 extends X {
    public List<Ytype1> ys;
}

Xtype1是X的一種,其中ys的所有成員都是Ytype1。 我希望X中依賴ys的任何方法都可以使用Xtype1中的ys在Xtype1中運行,但是我也想在Xtype1中實現依賴ys中所有Y的方法,即Ytype1。

我考慮過重寫X中會加到ys上的任何方法,以使這些方法不適用於非Ytype1的Y,但我希望避免不必要的類型轉換。

有適當的方法來做到這一點嗎?

聽起來您在尋找這個:

public class Y {...}

public class Ytype1 extends Y {...}

public class X<T extends Y> {
    public List<T> ys;
    ...
}

public class Xtype1 extends X<Ytype1> {
    // super.ys is now List<Ytype1>
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM