An interface is a specifier for the externally visible operations of a class or component without specification of internal structure.
Interfaces do not have implementation information: they lack attributes, states, or associations; they only have operations.
An Interface can be shown as a regular class rectangle with stereotype "Interface", or in short-hand notation, as a small circle connected to the class by a solid line. This later, iconized notation is known as the "lollipop" notation. The operations provided by the interface are not shown on the "lollipop" notation.
Shorthand, “lollipop” notation
An Interface can be drawn on a UML Class or a UML Component diagram. Select the Interface symbol in the toolbar (represented by a small "lollipop" icon), and drop it on the diagram workspace. You can also draw a regular, rectangular class, and change its stereotype property to "interface".
To show the interface as a rectangular class with "interface" stereotype, or in short‑hand, "lollipop" form, right-click the class, and then click Display as a Class or Display according to Stereotype.
Classes that realize the interface
Classes that support the interface are connected to it by a “realizes” (see Realizes). The Realizes line is drawn from the class to the interface.
If the interface is displayed as a rectangular class with <<interface>> stereotype, the Realizes line is displayed as a dashed line with triangular arrowhead.
If the interface is displayed in iconized, "lollipop" form, the Realizes line is displayed as a straight, solid line with no arrowhead.
The Realizes line implies that the class requires no more than the operations specified in the interface; the client class is not required to actually use all of the interface operations.