我想我想要的是根本不可能的,但我想确保。说我有在Java中调用默认和超级构造函数
public class bar {
public bar() {
}
public bar(Object stuff) {
// something done with stuff.
}
}
和扩展
public class foobar extends bar {
public foobar() {
super();
// some additional foobar logic here.
}
public foobar(Object stuff) {
// Do both the
// "some additional foobar logic" and
// "something done with stuff" here.
}
}
我怎样才能让foobar的(对象的东西)尽可能地简单,同时也避免重复的代码?我不能简单地调用超级(东西),因为“一些额外的foobar逻辑”没有完成,我不能调用这个(),因为我不做我想要做的事情“东西”。
注: 我意识到我实际上并不需要做到这一点在这种情况下,所以这是现在这里只是理论上的目的。
调用'super(stuff)'**和** *然后*在调用之后做一些额外的foobar逻辑。 –
你可以在'foobar(Object)'中做所有的逻辑,并检查参数为null。然后在'foobar()'中调用'this(null)'。 – Thomas
如果你更具体(和使用传统的名字),这将真的有帮助。你需要从'foobar(Object)'构造函数调用'bar(Object)'构造函数吗? –