Технологии

Отличия абстрактного класса от интерфейса (abstract class and interface)? - вопрос №3230761

Вопрос задан анонимно март 30, 2019 г.

  • Всего ответов: 1

  • Вячеслав - аватарка

    Вячеслав

    15-й в

    Короткое различие.

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

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

    Интерфейс нужен обычно когда описывается только интерфейс (тавтология). Например, один класс хочет дать другому возможность доступа к некоторым своим методам, но не хочет себя «раскрывать». Поэтому он просто реализует интерфейс.

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

    В некоторых языках (С++) специального ключевого слова для обозначения интерфейсов нет.

    Можно считать, что любой интерфейс — это уже абстрактный класс, но не наоборот.

    март 30, 2019 г.

Похожие вопросы

Решено

Как принудительно удалить объект в C#?

август 3, 2012 г.

Технологии