
An interface is a contract that guarantees that a class or struct will conform to a particular specification. When a class inherits from an interface it subscribes to supporting the behaviours that it defines. Implementation classes must implement all aspects of an interface.