Какие знаешь принципы ООП
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 ** 2shape = Shape() # ошибка!
circle = Circle(5)
print(circle.area()) # 78.5
