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 methodss and values which the objects agree upon in order to cooperate.

The interface is a description of:

  1. the messages that are understood by the object,
  2. the arguments that these messages may be supplied with, and
  3. the types of results that these messages return.

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