This competency area includes Generics, Interfaces, Interface inheritance, Modules, and Namespaces.
- Generics - Use of generics to create strongly typed collections, be it functions, classes, or interfaces.
- Interfaces - Use of interfaces to create contracts between itself and any class which implements it.
- Interface inheritance - Use of interface inheritance to reuse existing interfaces and to inherit the members of the existing interface but not their implementation.
- Modules and Namespaces - Use of modules and namespaces to restrict access of members outside it, unless exported and imported.