我想設計一個抽象類,它將強制執行實例變量的實現,即使該類型的實例變量在抽象級別未知。例如:從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