考慮到如下因素的抽象類的抽象類的方法體的子類的靜態字段,在僞引用
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;
}
有沒有辦法來定義品種()方法,使得它取決於BREEDTIME任何子類都在調用它? bug
的每個子類都保證有BREEDTIME初始化。另外,螞蟻應該培育其他螞蟻,所以稱爲內部品種()的構造函數必須是調用品種()的子類類型的構造函數。
我在這兒吠錯了樹嗎?
在PHP中,這稱爲[*晚靜態綁定*](http://php.net/manual/) en/language.oop5.late-static-bindings.php),但它在Java中不可用。 –