我敢肯定,這個問題可能已經回答,但環顧四周後,我不確定正確的術語讓我一個堅實的答案。無論是這個,還是我沒有完全理解的東西。JAVA返回父對象 - 從繼承的繼承 - 生成器模式
我試圖創建具有不同方法的構建器的選擇,但是,它們都必須從「基礎」構建器繼承。這很好,但我無法讓它返回正確的對象來繼續構建器模式。
什麼,我已經試過一個例子:
public class Builder1 {
protected String string = new String();
public <T extends Builder1 > T append1(String string) {
this.string += string;
return (T)this;
}
public void print() {
System.out.println(this.string);
}
}
public class Builder2 extends Builder1 {
public <T extends builder2 > T append2(String string) {
this.string += string;
return (T)this;
}
}
public class Builder3 extends Builder2 {
public <T extends Builder3 > T append3(String string) {
this.string += string;
return (T)this;
}
}
所以,如果我這樣做:
new Builder3().append3("")...
我可以訪問Builder3,Builder2和Builder1中的所有方法 - 很好。
的問題,當我訪問的Builder1或Builder2的方法之一,像這樣出現:現在
new Builder3().append1("")...
,我只能訪問Builder1的方法,我不能去Builder2或Builder3。
正如我所說,我相信這已經在其他地方得到了回答,所以請隨時指點我任何有關它的帖子。
任何幫助,將不勝感激,謝謝。
編輯:
我還要指出的是,這些方法都將做不同的事情。我的例子看起來好像他們在不同的地方做同樣的事情。
首先,您應該遵循Java命名約定。班級名稱**總是**以大寫字母開頭! –
是的,對不起,我通常這樣做,但這只是一個例子,但我會進行編輯。 :P – user3208218