Polymorphism in Swift
What is it and how can we implement it in Swift?

Polymorphism is an important tool for use in OO programs. But what is it, and how can we use this language feature of Swift?
Prerequisites:
- Classes, structs and some idea of inheritence
- The idea that abstract classes fulfil contracts