鉴于以下,在伪代码中
abstract public class Bug {
private static int BREEDTIME;
public void breed() {
if (this.age % this.BREEDTIME) {
world.setAt(new this.class(newX, newY, this.world);
}
}
}
public class Ant extends Bug {
private static int BREEDTIME = 3;
}
public class Doodlebug extends Bug {
private static int BREEDTIME = 8;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法定义breed()方法,这取决于任何子类调用它的BREEDTIME?bug保证每个子类都已初始化BREEDTIME.
此外,Ants应该繁殖其他Ants,因此在breed()内部调用的构造函数必须是调用breed()的子类类型的构造函数.
我在这里吠叫错了吗?
我会使用抽象方法来做到这一点.在您的超类中将getBreedTime()定义为abstract,然后在每个子类中实现它以返回适当的常量.
使用像这样的静态字段,你无法真正做到你想要的.
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |