Я нашел следующие определения из Интернета, и оба звука похожи на меня:В чем разница между абстракцией и интерфейсом?
Абстракция: абстракция - еще одна хорошая особенность OOPS. Абстракция означает отображение клиенту объекта только необходимых деталей. Вы знаете внутренние детали монитора вашего ПК? Что произойдет, если вы включите монитор? Имеет ли это значение для вас, что происходит внутри монитора? Нет. Правильно. Важной вещью для вас является погода. Монитор включен или нет. Когда вы меняете снаряжение своего автомобиля, вы действительно беспокоитесь о внутренних деталях вашего автомобиля? Нет, но что для вас важно, что Gear должен измениться, вот и все! Это абстракция; показать только те детали, которые важны для пользователя. Предположим, у вас есть метод «CalculateSalary» в вашем классе Employee, который принимает параметр EmployeeId как параметр и возвращает зарплату сотрудника за текущий месяц как целочисленное значение. Теперь, если кто-то хочет использовать этот метод. Ему не нужно заботиться о том, как объект Employee рассчитывает заработную плату? Единственное, что ему нужно беспокоиться, это имя метода, его входные параметры и формат результирующего члена, правильно? Таким образом, абстракция говорит только о деталях, которые касаются пользователя (клиента) вашего объекта. Таким образом, клиент, который использует ваш класс, не должен знать внутренние детали, например, как вы выполняете операции класса? Ему нужно знать немного деталей. Это, безусловно, помогает в повторном использовании кода.
Интерфейс: Интерфейс представляет собой описание действий, которые может выполнять объект ... например, когда вы переключаете переключатель света, свет продолжается, вам все равно, как это делается. В объектно-ориентированном программировании интерфейс представляет собой описание всех функций, которые должен иметь объект для того, чтобы быть «X». Опять же, в качестве примера, все, что «ACTS LIKE» светло, должно иметь метод turn_on() и метод turn_off(). Цель интерфейсов - позволить компьютеру обеспечивать соблюдение этих свойств и знать, что объект TYPE T (независимо от интерфейса) должен иметь функции, называемые X, Y, Z и т. Д.
Интерфейсы на объектно-ориентированных языках программирования
Интерфейс представляет собой структуру/синтаксис программирования, который позволяет компьютеру выполнять определенные свойства объекта (класса). Например, скажем, у нас есть класс автомобилей, класс скутеров и класс грузовиков. Каждый из этих трех классов должен иметь действие start_engine(). Как «двигатель запускается» для каждого транспортного средства остается для каждого конкретного класса, но тот факт, что они должны иметь действие start_engine, является доменом интерфейса.
Разве оба объяснения не говорят одно и то же? Так они же или разные?
Я понимаю «абстракцию» более общее слово (более абстрактное кстати), 1. теоретический способ ООП думать о проблеме. 2 программного обеспечения canon/pattern. Слово «интерфейс» более специализировано, относится к написанию кода (программирование) –