Является ли объектно-ориентированное программирование (ООП) общей концепцией?

«Является ли объектно-ориентированное программирование (ООП) общей концепцией?» — вопрос из категории ООП, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, объектно-ориентированное программирование (ООП) — это общая парадигма программирования, не привязанная к конкретному языку. Её основные принципы применяются во многих языках, таких как Java, C++, Python и C#.

Ключевые принципы ООП:

  1. Инкапсуляция: Сокрытие внутреннего состояния объекта и предоставление доступа к нему только через публичные методы.
  2. Наследование: Возможность создания нового класса на основе существующего, с наследованием его свойств и поведения.
  3. Полиморфизм: Способность объектов с одинаковой спецификацией иметь различную реализацию (например, переопределение методов).
  4. Абстракция: Моделирование классов, отражающих только существенные характеристики объекта для решаемой задачи.

Пример на Java:

// Абстракция и Инкапсуляция
class Animal {
    private String name; // Инкапсуляция состояния

    public Animal(String name) {
        this.name = name;
    }

    public void makeSound() {
        System.out.println("Some generic animal sound");
    }
}

// Наследование
class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    // Полиморфизм (переопределение метода)
    @Override
    public void makeSound() {
        System.out.println("Bark!");
    }
}