Каковы четыре основных принципа объектно-ориентированного программирования?

Ответ

Четыре ключевых принципа ООП формируют основу для создания гибких, масштабируемых и поддерживаемых программных систем. Они помогают управлять сложностью кода.

  1. Инкапсуляция (Encapsulation) Объединение данных (атрибутов) и методов для их обработки в единый объект (класс) с сокрытием внутренней реализации. Это защищает данные от прямого неконтролируемого доступа.

    class BankAccount:
        def __init__(self, initial_balance):
            # Атрибут __balance является "приватным" по соглашению
            self.__balance = initial_balance
    
        def deposit(self, amount):
            if amount > 0:
                self.__balance += amount
    
        def get_balance(self):
            return self.__balance
  2. Наследование (Inheritance) Механизм, позволяющий создавать новый класс (потомок) на основе существующего (родителя), переиспользуя его атрибуты и методы. Это способствует повторному использованию кода.

    class Animal:
        def speak(self):
            raise NotImplementedError("Subclass must implement abstract method")
    
    class Dog(Animal):
        def speak(self):
            return "Woof!"
    
    class Cat(Animal):
        def speak(self):
            return "Meow!"
  3. Полиморфизм (Polymorphism) Способность объектов разных классов отвечать на один и тот же вызов метода по-разному. Это позволяет писать более общий и гибкий код, который может работать с объектами разных типов через единый интерфейс.

    animals = [Dog(), Cat()]
    for animal in animals:
        # Вызывается один и тот же метод speak(), но результат разный
        print(animal.speak())
    # Вывод:
    # Woof!
    # Meow!
  4. Абстракция (Abstraction) Выделение наиболее значимых характеристик объекта и игнорирование второстепенных. Абстракция позволяет скрыть сложность реализации, предоставляя простой интерфейс для взаимодействия. В Python это часто реализуется через абстрактные базовые классы (ABC).