Interfaces
Definition 1: Any service requirement specification (SRS) is considered an interface.
Example 1:
A JDBC API specifies the requirements needed to develop a database driver.
The database vendor is responsible for implementing this JDBC API.
Example 2:
The Servlet API defines the requirements for developing a web server.
The web server vendor is responsible for implementing the Servlet API.
Definition 2: From the client's point of view, an interface defines the set of services they expect.
From the service provider's point of view, an interface defines the set of services they offer.
Therefore, any contract between a client and service provider can be considered an interface.
Example:
The bank ATM GUI screen highlights the set of services offered by the bank.
At the same time, it represents the set of services the customer is accepting.
Hence, this GUI screen acts as a contract between the customer and the bank.
Definition 3: Inside an interface, every method is always abstract, whether declared or not.
Thus, an interface is considered a 100% pure abstract class.
Summary Definition:
Any service requirement specification, any contract between a client and service provider,
or any 100% pure abstract class is considered an interface.