  */
 /*:
  **Keywords to remember:**
- - 'override' = Overriding a property or method of a base class
+ - `super` = To access a superclass's properties, methods or subscripts
+ - `override` = Overriding a property or method of a base class
  - `required` = All subclasses must implement an initializer that is `required`
  - `final` = A class, property or method that cannot be overridden
  - `is` = Type check operator to check if an instance is of a specific type
  - `as` = Type cast operator that will downcast to the subclass type. Use `as?` of casting can fail, use `as!` if downcast will always succeed
+ - `AnyObject` = Represents an instance of any class type
+ - `Any` = Represents an instance of any type, including function types and tuples
  */
 /*:
 **Supporting Chapters:**

let amelia = Daughter(age: 18, name: "Amelia", height: 61, hairColor: "Brown", eyeColor: "Brown")

print(amelia.sayHi())

/*:
 ## Overriding
 
 */

/*:
 ## Overriding Methods
 
 */
class Grandson: Son {


        print("Sith \(trainer.color) Trainer Lightsaber")
    }
}
/*:
 
 */
/*:
 ### Downcasting to get the type
 
