Какие знаешь принципы ООП

Python Middle Без компании
Какие знаешь принципы ООП
Ответы
**4 основных принципа ООП:** **Инкапсуляция** защищает данные **Наследование** переиспользует код **Полиморфизм** обеспечивает гибкость **Абстракция** упрощает сложность *Примеры:* **1. Инкапсуляция** Сокрытие внутренней реализации и данных от внешнего вмешательства. python ``` class BankAccount: def __init__(self): self._balance = 0 # protected attribute def deposit(self, amount): self._balance += amount def get_balance(self): return self._balance # доступ через метод acc = BankAccount() acc.deposit(100) print(acc.get_balance()) # 100 # print(acc._balance) # так делать не рекомендуется ``` ### **2. Наследование** Создание нового класса на основе существующего. python ``` class Animal: def speak(self): pass class Dog(Animal): # наследование def speak(self): return "Гав!" class Cat(Animal): def speak(self): return "Мяу!" dog = Dog() print(dog.speak()) # Гав! ``` ### **3. Полиморфизм** Объекты разных классов могут использовать одинаковые методы. python ``` def make_sound(animal): print(animal.speak()) make_sound(Dog()) # Гав! make_sound(Cat()) # Мяу! ``` ### **4. Абстракция** Сокрытие сложной реализации и предоставление простого интерфейса. python ``` from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass class Circle(Shape): def __init__(self, radius): self.radius = radius def area(self): return 3.14 * self.radius ** 2 # shape = Shape() # ошибка! circle = Circle(5) print(circle.area()) # 78.5 ```