The following recipes will be covered in this chapter:
- Working with interfaces in Kotlin
 - How to implement complicated interfaces with multiple overridden methods in Kotlin
 - How to extend a class in Kotlin (Inheritance and Extension functions)
 - How to work with Generics in Kotlin
 - How to implement polymorphism in Kotlin
 - Restricting class hierarchies