title: Overriding superclass property with different type in Swift
body: <p>In Swift, can someone explain how to override a property on a superclass's with another object subclassed from the original property?</p>
  
  <p>Take this simple example:</p>
  
  <pre><code>class Chassis {}
  class RacingChassis : Chassis {}
  
  class Car {
      let chassis = Chassis()
  }
  class RaceCar: Car {
      override let chassis = RacingChassis() //Error here
  }
  </code></pre>
  
  <p>This gives the error:</p>
  
  <pre><code>Cannot override with a stored property 'chassis'
  </code></pre>
  
  <p>If I have chassis as 'var' instead, I get the error:</p>
  
  <pre><code>Cannot override mutable property 'chassis' of type 'Chassis' with covariant type 'RacingChassis'
  </code></pre>
  
  <p>The only thing I could find in the guide under "Overriding Properties" indicates that we have to override the getter and setter, which may work for changing the value of the property (if it's 'var'), but what about changing the property class?</p>