我在主題上發現了很多帖子,但無法找到我正在尋找的解決方案。如何指定抽象類的方法的返回類型
因此,這裏的交易:
我有兩個子類第一抽象類:
public abstract class A {
public A(args){..}
}
public class B extends A {
public B(args){
super(args);
}
}
public class C extends A{
public C(args){
super(args);
}
}
ARGS是一些變數,但在形式上不會改變。 其他一些東西在課堂上,但這裏沒關係。
現在,我有兩個子類是B和C.建設者的大部分是相同的建設者另一個抽象類,所以我想它是在抽象的建設者
public abstract class Builder {
public A build(*?*){
//compute args
return new *either B or C*(args);
}
}
public class B_Builder extends Builder {
public B build(*?*){
super(*?*);
}
}
public class C_Builder extends Builder{
public C build(*?*){
super(*?*);
}
}
再次,建設者的其他東西並不重要。
我的問題是如何告訴Builder abastract類,通過構建器子類應該是什麼樣的構建返回類型。 知道返回類型B和C都擴展A. 我想我應該使用一些通用的東西,但我無法設法使其工作。
任何人都可以幫助我嗎?
非常感謝!
LD
'build()'接受任何參數嗎?構造函數有多少個參數? – shmosel
'build()'至少需要一個參數(持有構建所需數據的類),但它可能採取了其他任何參數。 構造函數需要大約10個參數,這些參數是從'build()'的arg中檢索的數據。 你的解決方案做了伎倆btw,非常感謝!!!! 我也會嘗試其他的,以便更多地瞭解泛型。 – ldebroux
你可以使用工廠模式和觀看*多態*代理 – emotionlessbananas