Четыре важные концепции объектно-ориентированного программирования (ООП)

Четыре фундаментальных понятия объектно-ориентированного программирования (ООП):

  1. Инкапсуляция. Инкапсуляция — это процесс сокрытия внутренних деталей и реализации объекта и предоставления общедоступного интерфейса для взаимодействия с ним. Это помогает добиться абстракции данных и гарантирует, что доступ к внутреннему состоянию объекта возможен только через определенные методы.

Пример кода на Python:

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model

    def start_engine(self):
        print("Engine started.")
my_car = Car("Toyota", "Camry")
my_car.start_engine()
  1. Наследование: Наследование — это механизм, который позволяет классу наследовать свойства и поведение от другого класса. Класс, от которого наследуется, называется базовым классом или суперклассом, а класс, который наследуется, называется производным классом или подклассом. Наследование способствует повторному использованию кода и поддерживает концепцию иерархической классификации.

Пример кода на Python:

class Animal:
    def eat(self):
        print("Eating...")
class Dog(Animal):
    def bark(self):
        print("Barking...")
my_dog = Dog()
my_dog.eat()
my_dog.bark()
  1. Полиморфизм. Полиморфизм означает способность объекта принимать несколько форм. В ООП это позволяет рассматривать объекты разных классов как объекты общего суперкласса. Полиморфизм обычно достигается за счет переопределения и перегрузки методов.

Пример кода на Python:

class Shape:
    def area(self):
        pass
class Rectangle(Shape):
    def __init__(self, length, width):
        self.length = length
        self.width = width

    def area(self):
        return self.length * self.width
class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius * self.radius
shapes = [Rectangle(4, 5), Circle(3)]
for shape in shapes:
    print(shape.area())
  1. Абстракция. Абстракция — это процесс упрощения сложных систем путем разбиения их на более мелкие и более управляемые единицы. Он предполагает сосредоточение внимания на основных особенностях объекта, скрывая при этом ненужные детали. Абстракция достигается за счет абстрактных классов и интерфейсов.

Пример кода на Python:

from abc import ABC, abstractmethod
class Vehicle(ABC):
    @abstractmethod
    def start_engine(self):
        pass
class Car(Vehicle):
    def start_engine(self):
        print("Car engine started.")
class Motorcycle(Vehicle):
    def start_engine(self):
        print("Motorcycle engine started.")
my_car = Car()
my_car.start_engine()
my_motorcycle = Motorcycle()
my_motorcycle.start_engine()