ルール1スウィフト初期化ルールの混乱
は、それが自動的に、そのスーパークラスの指定イニシャライザのすべてを継承します。
混乱:サブクラスに1つの指定された初期化子を提供しました。つまり、スーパークラス指定のイニシャライザはサブクラス化されません。しかし、を書き換えてキーワードを指定する必要があります。これはサブクラスで指定されたスーパークラスの初期化子を実装するためです(スーパークラスはinitがサブクラスになるという意味です)。ルール1は、私がサブクラス指定のイニシャライザを提供した場合、指定されたスーパークラスはダウンしないと言います。 (私たちは、サブクラスのいずれかの指定された初期化を提供しなかった場合は理にかなっているだけオーバーライドします。)
class Food{
var name : String
init(foodName :String) {
self.name = foodName
}
}
class RecipieIngredient : Food{
var quantity : Int
init(fName :String, quantity :Int) {
self.quantity = quantity
super.init(foodName: fName)
}
override convenience init (foodName :String){
self.init(fName: foodName, quantity: 1)
}
}
あなたが指しているスーパークラスとサブクラスの例を教えてください。あなたが何を求めているのかははっきりとは分かりません。 –
質問するコードを追加しました。 @SørenMortensen –