  */
 /*:
  ### Overriding Properties
- Overriding a property (either instance or type) is similar to overriding a function; you also place the override keyword before the property definition. It doesn’t matter if the superclass’s property is a stored property or computed property. You can override a property in a subclass as long as the name and type are the same as in the superclass. You can override a property’s get and set methods as well as the property observers.
+ Overriding a property (either instance or type) is similar to overriding a method; you also place the `override` keyword before the property definition. It doesn’t matter if the superclass’s property is a stored property or computed property. You can override a property in a subclass as long as the name and type are the same as in the superclass. You can override a property’s get and set methods as well as the property observers.
  */
 class Granddaughter: Daughter {
     

 */
/*:
 ## The Subclass
 Having a class inherit from another class, or subclassing and superclass is done with the colon `:` directly after the class name and then the class you want to inherit after the colon. Once a class is defined as having subclassing another class, the subclass can immediately access the visible properties and methods (type and instance). The subclass can also have new properties and methods.
 */
class Son: Father {
    

trainers.append(jediTrainer)
trainers.append(sithTrainer)
/*:
 Above we have created two new classes, `JediTrainerLightsaber` and `SithTrainerLightsaber`. We store instances of these two classes in an array storing instances of `Lightsaber`. This is allowable because our instances of `JediTrainerLightsaber` and `SithTrainerLightsaber` have the same base class `Lightsaber`.
 */
/*:
 ### Checking the type
