Interfaces
Extending Interface
Class Interface
Add functions or properties to an existing interface
Generic Interfaces
Using Interfaces for Polymorphism
Using Interfaces to Enforce Types
Implicit Implementation And Object Shape