Топ вопросов по ООП с собеседований. Часть 1

ООП является одной из основных концепций в мире программирования, поэтому каждое интервью, которое вы проходите, требует знаний ООП. В этой статье собраны наиболее часто задаваемые вопросы по ООП для новичков. Так что присаживайтесь и готовьтесь.

1. Что такое ООП?

ООП (объектно-ориентированное программирование) — это тип программирования, основанный на объектах, а не только на функциях и процедурах. Отдельные объекты сгруппированы в классы. ООП внедряет в программирование реальные парадигмы, такие как наследование, полиморфизм, инкапсуляция и т. д. ООП также позволяет связывать данные и код вместе.

2. Зачем использовать ООП?

  • ООП обеспечивает ясность в программировании и, следовательно, простоту в решении сложных задач.
  • Код может быть повторно использован посредством наследования, тем самым уменьшая избыточность
  • Данные и код связаны вместе инкапсуляцией
  • ООП позволяет скрывать данные, поэтому личные данные остаются конфиденциальными
  • Проблемы могут быть разделены на мелкие части, что облегчает их решение
  • Концепция полиморфизма придает программе гибкость, позволяя объектам иметь несколько форм.

3. Назовите основные принципы ООП

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

4. Что такое объект

Объект — это сущность реального мира, которая является основной единицей ООП, например, стул, кошка, собака и т. д. Различные объекты имеют разные состояния или атрибуты и поведение.

5. Что такое класс?

Класс — это прототип, который состоит из объектов в разных состояниях и с различным поведением. У него есть несколько методов, которые являются общими для объектов, присутствующих в этом классе.

6. В чем разница между классом и структурой

Класс: определенный пользователем проект, из которого создаются объекты. Он состоит из методов или набора инструкций, которые должны выполняться над объектами.

Структура. Структура — это, в основном, пользовательский набор переменных разных типов данных.

7. Можете ли вы вызвать метод базового класса, не создавая экземпляр?

Да, вы можете вызывать базовый класс без его создания, если:

  • Это статический метод
  • Базовый класс наследуется некоторым другим подклассом

8. В чем разница между классом и объектом?

Объект:

  • Сущность реального мира
  • Работает как переменная класса
  • Это физическая сущность
  • Занимает место в памяти при создании
  • Должен быть объявлен каждый раз, когда нужен

Класс:

  • Обычно является шаблоном создания объектов
  • Объединяет методы и данные в единую ячейку
  • Это логическая сущность
  • Не занимает место в памяти при создании
  • Объявляется один раз

9. Что такое наследование?

Наследование — это особенность ООП, которая позволяет классам наследовать общие свойства от других классов. Например, если существует такой класс, как «транспортное средство», другие классы, такие как «автомобиль», «велосипед» и т. д., Могут наследовать общие свойства от класса транспортного средства. Это свойство помогает вам избавиться от избыточного кода, тем самым уменьшая общий размер кода.

10. Какие бывают виды наследования?

  • Единственное наследование
  • Множественное наследование
  • Многоуровневое наследование
  • Иерархическое наследование
  • Гибридное наследование

11. В чем разница между множественным и многоуровневым наследованием?

Множественное наследование:

  • Множественное наследование проявляется, когда класс наследуется более чем от одного класса
  • Пример: класс «Ребенок» наследуется от классов «Мать» и «Отец»

Многоуровневое наследование:

  • Многоуровневое наследование проявляется, когда класс наследуется от класса, который наследуется от класса…
  • Пример: класс «Спорткар» наследуется от класса «Машина», который наследуется от класса «Автомобиль»

12. Назовите ограничения в наследовании

  • Увеличивает время и усилия, необходимые для выполнения программы, так как она требует переходов между различными классами
  • Родительский класс и дочерний класс тесно связаны
  • Любые изменения в программе потребуют изменений как в родительском, так и в дочернем классе.
  • Необходима тщательная подготовка реализации, иначе это приведет к неверным результатам

13. Что такое суперкласс?

Суперкласс или базовый класс — это класс, который действует как родительский для некоторого другого класса или классов. Например, класс «Автомобиль» является суперклассом класса «Машина».

14. Что такое подкласс?

Класс, который наследуется от другого класса, называется подклассом. Например, класс «Машина» является подклассом или производным от класса «Автомобиль».

15. Что такое полиморфизм?

Полиморфизм — способность существовать в нескольких формах. Несколько определений могут быть объявлены для одного интерфейса. Например, если у вас есть класс с именем «Автомобиль», у него может быть метод с именем speed, но вы не можете определить его, потому что разные машины имеют разную скорость. Этот метод будет определен в подклассах с разными определениями для разных транспортных средств.

Продолжение статьи находится во второй части.