Как правильно обращаться к одиннаковым полям разных классов и как их правильно изменять? Как инниициализировать поле до создания объекта правильно?

Как инниициализировать поле до создания объекта правильно, с возможностью его изменения в дальнейшем, но не для пользователя? Программа иммитирует меню кофемашины. Есть abstract class Drink, его наследует класс Tea, есть private поле cost (цена), для разных напитков cost разный, его нужно помещать в родительский класс, в дочерний класс или во все? Вопрос больше к логированию, ведь цена на напиток должна быть заданна по умолчанию, но что, если её придётся в дальнейшем изменить? (владельцу, но не пользователю). Как лучше поступить в такой ситуации? Еще есть класс CoffeeMachine с точкой входа в программу, в программе реализован фабричный метод без интерфейса с абстрактным классом.

public abstract class Drink {

   private int cost;

   public void makeDrink() {

       }
}


public class Tea extends Drink {

    private int cost;

    @Override
    public void makeDrink() {
    //code
    }

}

Ответы (0 шт):