我敢肯定,这个问题可能已经回答,但环顾四周后,我不确定正确的术语让我一个坚实的答案。无论是这个,还是我没有完全理解的东西。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