Jeśli obiekty są w pełni hermetyzowane, protokół będzie opisywać jedyny sposób, w jaki inne obiekty mogą uzyskać dostęp do obiektów. Na przykład w interfejsach Java interfejs Comparable określa metodę compareTo(), którą klasy implementujące muszą implementować. Oznacza to, że na przykład oddzielna metoda sortowania może sortować dowolny obiekt, który implementuje interfejs Comparable, bez konieczności posiadania jakiejkolwiek wiedzy o wewnętrznej naturze klasy (poza tym, że dwa z tych obiektów można porównać za pomocą funkcji compareTo()) .
Niektóre języki programowania zapewniają wyraźną obsługę języków dla protokołów/interfejsów (Ada, C#, D, Dart, Delphi, Go, Java, Logtalk, Object Pascal, Objective-C, PHP, Swift). W C++ interfejsy są znane jako abstrakcyjne klasy bazowe i są implementowane przy użyciu czystych funkcji wirtualnych. Zorientowane obiektowo funkcje Perla obsługują również interfejsy.
Niezorientowane obiektowo języki programowania Chociaż język programowania Go nie jest ogólnie uważany za język zorientowany obiektowo, umożliwia definiowanie metod na typach zdefiniowanych przez użytkownika. Go ma typy „interfejsów”, które są zgodne z każdym typem obsługującym dany zestaw metod (typ nie musi jawnie implementować interfejsu).