Sobes.tech
Назад к вопросам
Junior — Middle
85

Можете ли вы объяснить, что подразумевается под интерфейсами в программировании?

Компании, где спрашивали
ГК Адепт

Ответ от нейросети

sobes.tech AI

В программировании интерфейс — это абстрактный тип, который определяет набор методов (и иногда свойств), которые должен реализовать класс. Интерфейсы не содержат реализации, а лишь описывают, какие функции должны быть доступны.

В C++ интерфейс обычно реализуется через абстрактные классы с чисто виртуальными методами:

class IShape {
public:
    virtual double area() const = 0; // чисто виртуальная функция
    virtual ~IShape() {}
};

class Circle : public IShape {
    double radius;
public:
    Circle(double r) : radius(r) {}
    double area() const override {
        return 3.1415 * radius * radius;
    }
};

Таким образом, интерфейс задаёт контракт, который обязаны соблюдать все классы, его реализующие. Это позволяет писать код, работающий с объектами через интерфейс, не зная конкретной реализации.