【发布时间】:2023-03-04 18:55:01
【问题描述】:
public abstract class Agent1 {
public abstract void actOn(Object o);
public void repeat(Object o, int i) {
for (int j = 1; j <= i; j++) {
actOn(o);
}
}
}
public abstract class Agent2 {
public abstract void actOn(Object o, int i);
public void repeat(Object o, int i) {
for (int j = 1; j <= i; j++) {
actOn(o, j);
}
}
}
如何通过减少代码重复来改进此代码? 答案是:
Agent1必须继承自Agent2,Agent1会使用actOn(o)执行actOn(o,i),同时删除repeat函数.....
但在我看来,以下答案看起来是正确的,但它是错误的,为什么:
"Agent2必须继承Agent1,Agent2会使用actOn(o,i)执行actOn(o),同时删除repeat函数"
编辑:大胆的Agent2
【问题讨论】:
-
这种问题应该在codereview.stackexchange.com问。
-
恐怕你的问题不清楚。 “说错了”是什么意思?
-
(我想我可能理解,但问题确实可以先澄清。)
标签: java inheritance code-duplication