• помогите написать код на Python. срочно надо, отдам 20 балов. Создайте абстрактный класс Dish, который определяет общий интерфейс для всех блюд, и классы Starter, MainCourse и Dessert, которые наследуются от Dish и предоставляют конкретную реализацию для каждого типа блюд. Кроме того, можно создать абстрактный класс Order, который определяет общий интерфейс для заказов, и классы TableOrder и DeliveryOrder, которые наследуются от Order и предоставляют конкретную реализацию для заказов в ресторане и на доставку соответственно.

Ответы 1

  • Ответ:

    from abc import ABC, abstractmethod

    class Dish(ABC):

       @abstractmethod

       def get_description(self):

           pass

       

       @abstractmethod

       def get_price(self):

           pass

    class Starter(Dish):

       def __init__(self, description, price):

           self.description = description

           self.price = price

       def get_description(self):

           return self.description

       

       def get_price(self):

           return self.price

    class MainCourse(Dish):

       def __init__(self, description, price):

           self.description = description

           self.price = price

       def get_description(self):

           return self.description

       

       def get_price(self):

           return self.price

    class Dessert(Dish):

       def __init__(self, description, price):

           self.description = description

           self.price = price

       def get_description(self):

           return self.description

       

       def get_price(self):

           return self.price

    class Order(ABC):

       @abstractmethod

       def add_dish(self, dish):

           pass

       

       @abstractmethod

       def remove_dish(self, dish):

           pass

       

       @abstractmethod

       def calculate_total(self):

           pass

    class TableOrder(Order):

       def __init__(self):

           self.dishes = []

       def add_dish(self, dish):

           self.dishes.append(dish)

       

       def remove_dish(self, dish):

           self.dishes.remove(dish)

       

       def calculate_total(self):

           total = 0

           for dish in self.dishes:

               total += dish.get_price()

           return total

    class DeliveryOrder(Order):

       def __init__(self):

           self.dishes = []

       def add_dish(self, dish):

           self.dishes.append(dish)

       

       def remove_dish(self, dish):

           self.dishes.remove(dish)

       

       def calculate_total(self):

           total = 0

           for dish in self.dishes:

               total += dish.get_price()

           return total

    Объяснение:

  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years