Jump to content

Интерфейс (объектно-ориентированное программирование)

В объектно-ориентированном программировании интерфейса или протокола . тип [а] это тип данных , который действует как абстракция класса . Он описывает набор сигнатур методов , реализации которых могут предоставляться несколькими классами , которые в остальном не обязательно связаны друг с другом. [1] Говорят, что класс, предоставляющий методы, перечисленные в протоколе, принимает протокол. [2] или реализовать интерфейс. [1]

Если объекты полностью инкапсулированы , то протокол является единственным способом доступа к ним для других объектов. Например, Java в Comparable интерфейс указывает метод compareTo() какие реализующие классы должны реализовать. Это означает, что метод сортировки, например, может сортировать коллекцию любых объектов типов, реализующих интерфейс Comparable, без необходимости ничего знать о внутренней природе класса (за исключением того, что два из этих объектов можно сравнить с помощью compareTo()).

Некоторые языки программирования обеспечивают явную языковую поддержку протоколов ( Ada , C# , D , Dart , Delphi , Go , Java , Logtalk , Object Pascal , Objective-C , OCaml , PHP , Racket , Seed7 , Swift , Python 3.8). В языках, поддерживающих множественное наследование , таких как C++ , интерфейсы реализованы как абстрактные классы .

В языках без явной поддержки протоколы часто все еще присутствуют в виде соглашений. Это известно как утиная типизация . Например, в Python любой класс может реализовать __iter__ метод и использоваться как коллекция . [3]

Классы типов в таких языках, как Haskell , или сигнатуры модулей в ML и OCaml используются для многих целей, для которых используются протоколы. [ нужны разъяснения ]

В Rust интерфейсы называются типажами . [4]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Использование этих терминов зависит от языка программирования. Java и языки, производные от него, обычно используют «интерфейс», тогда как «протокол» обычно более популярен в других местах.
  1. Перейти обратно: Перейти обратно: а б «Интерфейсы — определяют поведение для нескольких типов» . Learn.microsoft.com . Проверено 16 ноября 2022 г.
  2. ^ Миллер, Би Джей (2015). Сэмс: Научитесь быстроте за 24 часа . Индианаполис, Индиана. п. 263. ИСБН  978-0-672-33724-6 . Любой тип может использовать протокол, который обеспечит ему дополнительную функциональность для выполнения определенного набора задач. {{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  3. ^ «Глоссарий — документация Python 3.11.0» . docs.python.org . Проверено 16 ноября 2022 г.
  4. ^ «Черты — ссылка на ржавчину» . Январь 2024 года.


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1243e914f248d2b2931e7b218473c041__1714461000
URL1:https://arc.ask3.ru/arc/aa/12/41/1243e914f248d2b2931e7b218473c041.html
Заголовок, (Title) документа по адресу, URL1:
Interface (object-oriented programming) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)