Краткое изложение четырех концепций объектно-ориентированного программирования

Я обнаружил, что этот вопрос довольно часто возникает во время собеседований.

Что это за четыре столпа?

Они есть:

  1. Абстракция
  2. Наследование
  3. Полиморфизм
  4. Инкапсуляция

Абстракция

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

С помощью объектно-ориентированного программирования мы пытаемся представить объекты, которые мы находим в реальном мире, в коде.

Например, при попытке изобразить автомобиль мы можем захотеть использовать определенные функции, которые помогают определить его.

Какие функции мы можем использовать?

У машины четыре колеса.

У машины обычно есть хозяин.

На что способна машина?

Его можно водить.

Его можно припарковать.

Это всего лишь несколько способов, которыми мы можем представить машину в коде.

Когда мы хотим создать объект Car, мы назначаем ему эти атрибуты и методы.

Наследование

В ООП мы создаем классы как шаблоны для наших объектов. Эти классы могут приобретать свойства и / или поведение от другого класса.

Это разрешено посредством наследования.

Он позволяет создавать подклассы, которые наследуют от родительского класса.

С его помощью код можно писать, повторно использовать и изменять быстрее.

Полиморфизм

Это относится к свойству Наследование ООП.

Когда подкласс наследует определенные методы или свойства от родительского класса, он может перезаписать их своими собственными.

Другими словами, он может определять свое собственное уникальное поведение, в то же время разделяя поведение / функции своего родительского класса.

Например, автомобиль может быть родительским классом с поведением вождения. Он возвращает сообщение «Автомобиль едет».

Гоночная машина - это подкласс автомобиля, у нее тоже есть поведение для вождения. Разница в том, что когда метод drive вызывается для гоночной машины, он возвращает сообщение «Гоночная машина едет быстро».

Это только одностороннее наследование методов.

Родительский класс не может иметь поведение своего подкласса.

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

Это связано с определением объема работ.

Некоторые свойства / методы / переменные, определенные внутри объекта класса, не могут быть видимы за его пределами.

Это делает их более безопасными.