UML Modeling Techniques > Class modeling > Interfaces > Overview of interfaces
  
Overview of interfaces
An Interface is a subtype of the Class dictionary item.
On a Class Diagram and Composite Structure Diagram, you typically show Interfaces as provided Interface Classes (lollipops) and required Interface Classes (cups).
When an Interface is not shown as a lollipop or cup on a diagram, an Interface's notation is as follows:
* 
In the Relationships pane, there are Provided Interfaces and Required Interfaces folders for Classes, Data Types, Interfaces, Signals, Parts and Ports.
Provided Interface Classes
You use the Provided Interface button on the Class Diagram and Composite Structure Diagram toolbars to add a new or existing provided Interface to a diagram:
You click the dependent Class, Data Type, Signal, Part or Port, and then double-click where you want to add the Interface. You can add an existing Interface by clicking the dependent item, and then double-clicking with the right mouse button.
Modeler adds an interface realization Dependency from the dependent item to the Interface. If there is a valid interface realization Dependency in the Model, Modeler uses that Dependency.
In addition, you can use the Provided Interface button to add an interface realization Dependency between items and Interfaces (including cups) on the diagram. For more information, see Adding a dependency to a lollipop or cup on a diagram.
Required Interface Classes
You use the Required Interface button on the Class Diagram and Composite Structure Diagram toolbars to add a new or existing required Interface Class to a Class diagram:
You click the dependent Class, Data Types, Signal, Part or Port, and then double-click where you want to add the Interface. You can add an existing Interface by clicking the dependent item, and then double-clicking with the right mouse button.
Modeler adds a uses Dependency from the dependent Class to the Interface. If there is a valid uses Dependency in the Model, Modeler uses that Dependency.
In addition, you can use the Required Interface button to add a uses Dependency between items and Interfaces (including lollipops) on the diagram. For more information, see Adding a dependency to a lollipop or cup on a diagram.
* 
If you click inside the cup, you can select the Interface.
Populating Interfaces
You can add Interfaces to a Class Diagram or Composite Structure Diagram as lollipops and cups through the Populate Interfaces command for a Class, Data Type, Signal, Part or Port. For more information, see Populating interfaces as lollipops and cups on a diagram.
If you use other Populate commands to add Interfaces to a Class Diagram, the Interfaces are added as Interface symbols rather than lollipops and cups; however, on a Class Diagram you may find the diagram Populate Dependencies command useful for identifying which items have required or provided Interfaces.
Interface Members
Items scoped to an Interface must be public. If you copy an item to an Interface, Modeler sets its Access (for Attributes, Operations and Roles) or Visibility to Public.