Type Casting
Downcasting
Type casting in Swift Language
Casting with switch
Upcasting
Example of using a downcast on a function parameter involving subclassing