- Inheritance enables one class to inherit the characteristics of another.
- Type casting enables you to check and interpret the type of a class instance at runtime.
- Deinitializers enable an instance of a class to free up any resources it has assigned.
- Reference counting allows more than one reference to a class instance.
https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html
https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes