# Класс Automobile содержит общие данные 
# об автомобиле на складе

class Automobile:

    def __init__(self, make, model, mileage, price) -> None:
        self.__make = make
        self.__model = model
        self.__mileage = mileage
        self.__price = price

    def set_make(self, make):
        self.__make = make

    def set_model(self, model):
        self.__model = model

    def set_mileage(self, mileage):
        self.__mileage = mileage

    def set_price(self, price):
        self.__price = price

    def get_make(self):
        return self.__make
    
    def get_model(self):
        return self.__model
    
    def get_mileage(self):
        return self.__mileage
    
    def get_price(self):
        return self.__price
    

# Класс Car представляет легковой автомобиль.
# Он является подклассом класса Automobile.
    
class Car(Automobile):

    def __init__(self, make, model, mileage, price, doors):
        Automobile.__init__(self, make, model, mileage, price)
        self.__doors = doors

    def set_doors(self, doors):
        self.__doors = doors

    def get_doors(self):
        return self.__doors
    

# Класс Truck представляет пикап.
# Он является подклассом класса Automobile.
    
class Truck(Automobile):

    def __init__(self, make, model, mileage, price, drive_type):
        Automobile.__init__(self, make, model, mileage, price)
        self.__drive_type = drive_type

    def set_drive_type(self, drive_type):
        self.__drive_type = drive_type

    def get_drive_type(self):
        return self.__drive_type

# Класс SUV представляет джип.
# Он является подклассом класса Automobile.

class SUV(Automobile):

    def __init__(self, make, model, mileage, price, pass_cap):
        Automobile.__init__(self, make, model, mileage, price)
        self.__pass_cap = pass_cap

    def set_pass_cap(self, pass_cap):
        self.__pass_cap = pass_cap

    def get_pass_cap(self):
        return self.__pass_cap


def main():
    used_car = Car('Audi', 2007, 12500, 21500.0, 4)
    truck = Truck('Toyota', 2002, 4000, 12000.0, '4WD')
    suv = SUV('Volvo', 2000, 30000, 18500.0, 5)

    # Показать данные легкового авто.
    print('Данный легковой автомобиль имеется на складе.')
    print('Изготовитель:', used_car.get_make())
    print('Модель:', used_car.get_model())
    print('Пробег:', used_car.get_mileage())
    print('Цена:', used_car.get_price())
    print('Количество дверей:', used_car.get_doors())
    print()

    # Показать данные пикапа.
    print('Данный пикап имеется на складе.')
    print('Изготовитель:', truck.get_make())
    print('Модель:', truck.get_model())
    print('Пробег:', truck.get_mileage())
    print('Цена:', truck.get_price())
    print('Тип привода:', truck.get_drive_type())
    print()

    # Показать данные джипа.
    print('Данный пикап имеется на складе.')
    print('Изготовитель:', suv.get_make())
    print('Модель:', suv.get_model())
    print('Пробег:', suv.get_mileage())
    print('Цена:', suv.get_price())
    print('Пассажирская вместимость:', suv.get_pass_cap())
    print()

if __name__ == "__main__":
    main()