In computer science's object-oriented programming, a protocol (Java: interface) is what or how unrelated objects use to communicate with each other. These are definitions of methods and values which the objects agree upon in order to cooperate.
The interface is a description of:
If the objects are fully encapsulated then the protocol will describe the only way in which objects may be accessed by other objects.
See also: class, encapsulation, public interface[?], private interface[?]