Встречается на собеседованиях • сегодня

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

4 основных принципа ООП:

Инкапсуляция защищает данные

Наследование переиспользует код

Полиморфизм обеспечивает гибкость

Абстракция упрощает сложность

Примеры:

1. Инкапсуляция

Сокрытие внутренней реализации и данных от внешнего вмешательства.

python

text
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) # так делать не рекомендуется

text

### **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()) # Гав!

text

### **3\. Полиморфизм**

Объекты разных классов могут использовать одинаковые методы.

python

def make_sound(animal):
print(animal.speak())

make_sound(Dog()) # Гав!
make_sound(Cat()) # Мяу!

text

### **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

text
def area(self):
    return 3.14 * self.radius ** 2

shape = Shape() # ошибка!

circle = Circle(5)
print(circle.area()) # 78.5

text
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы