Расскажите про принципы ООП: инкапсуляция, наследование, полиморфизм, абстракция
Answer from AI
sobes.tech AI
Принципы ООП:
-
Инкапсуляция — скрытие внутренней реализации объекта и предоставление доступа к данным через методы. Это защищает состояние объекта от некорректного изменения.
-
Наследование — механизм, позволяющий создавать новый класс на основе существующего, наследуя его свойства и методы, что способствует повторному использованию кода.
-
Полиморфизм — способность объектов разных классов реагировать на одинаковые сообщения (методы) по-разному. В Python это достигается через переопределение методов в подклассах.
-
Абстракция — выделение существенных характеристик объекта, скрывая детали реализации. В Python можно использовать абстрактные классы и методы из модуля
abc.
Пример на Python:
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def sound(self):
pass
class Dog(Animal):
def sound(self):
return "Woof"
class Cat(Animal):
def sound(self):
return "Meow"
# Использование
animals = [Dog(), Cat()]
for animal in animals:
print(animal.sound()) # Полиморфизм
Здесь Animal — абстрактный класс (абстракция), Dog и Cat наследуют его, реализуя метод sound (наследование и полиморфизм). Инкапсуляция проявляется в том, что внутренние данные класса могут быть скрыты, а доступ к ним — через методы.