title: Why does Swift constructor use named parameter calling?
body: <p>Swift Programming Language's example code does not call super.init in the first line.  It would seem that's an unsafe practice as an inherited item can be overridden by parent constructor, right?</p>
  
  <pre><code>class EquilateralTriangle: NamedShape {
      var sideLength: Double = 0.0
  
      init(sideLength: Double, name: String) {
          self.sideLength = sideLength
          super.init(name: name)
          numberOfSides = 3
      }
  
      var perimeter: Double {
      get {
          return 3.0 * sideLength
      }
      set {
          sideLength = newValue / 3.0
      }
      }
  
      override func simpleDescription() -&gt; String {
          return "An equilateral triagle with sides of length \(sideLength)."
      }
  }
  </code></pre>