我想设计一个抽象类,它将强制执行实例变量的实现,即使该类型的实例变量在抽象级别未知。例如:从Java中的抽象类实施实例变量的实现
public abstract class AbstractDiet{
abstract void computeMeat()
abstract void computeVeggies()
…
}
public abstract class AbstractAnimal{
protected AbstractDiet diet;
…
}
然后我想用户实现类似:
public class Cat extends AbstractAnimal{
protected CatFoodDiet diet; // CatFoodDiet extends AbstractDiet
…
}
这是落实diet
变量的最佳方式?我想确保AbstractDiet的一个子类总是在AbstractAnimal的子类中实现。
'我想确保AbstractDiet的一个子类总是在AbstractAnimal的子类中实现的。'这个语句没有意义。您不需要实现变量或字段。你初始化它。你真的在问什么? –
我想确保AbstractDiet的子类存在于任何子类AbstractAnimal中。由于AbstractDiet本身就是一个抽象类,所以我想设计一种方式,以便用户始终知道要声明AbstractDiet的具体子类。那有意义吗? – user3512559
我想他在问[抽象类和接口](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)之间的区别。 – user3334690