2017-02-13 14 views
-1

親クラスから継承した子クラスがあると混乱します。 最初の質問はなぜsuper.initを使用するのですか?私はオーバーライドinitを理解するので、親から以前に設定された値をオーバーライドすることができますが、私はsuper.initの使用を理解していません。 2番目の質問はなぜパラメータがありますか? EDIT:なぜ、親クラスにもinitがありますか?super.initと()に関する質問

class car { 
    var speed = 5 
    var model: String? 
    var age: Int? 

} 

class bmw: car { 
    override init() { 
     super.init() 
     model = "cat" 
    } 

} 
+2

ようこそスタックオーバーフロー。無関係な質問を別の質問に代用しないでください。正しい手順は、最初の質問に対する回答を受け入れるかどうかを決めることで、別の新しい質問をします。ありがとうございました。 – matt

答えて

4

この例では、superを呼び出す正当な理由はありません。しかし、一般に、どのクラスも初期化するプロパティや実行する他の初期タスクを持つことがあります。また、サブクラスの指定された初期化子は、スーパークラス指定の初期化子を呼び出す必要があり、サブクラスとスーパークラス。