Swift 3で継承をテストしていて、予期しないエラーが発生しました。 super.init()
コールをどのように変更しても、これよりも問題の少ないトレースをエラーにすることはできません。swift 3.1.1 ERROR追加の引数 '{property}'を呼び出しました
私はここでドキュメントや他の同様の記事を読んでいますが、この特定の問題の例はありません。私は変数または定数のいずれかのプロパティを持つクラスを作成しようとしているし、最初のクラスから継承し、新しいプロパティを追加する別のクラスを作成しています。
私のサブクラスのinit関数からエラーが発生します。まず、新しいプロパティを設定してから、super.init()
をスーパークラスの適切な引数で呼び出します。 Swiftは3番目のパラメータ "birthday"が "余分な議論"だと私に伝えます。
3つのプロパティを持つスーパークラスと2つのサブクラスの間に問題がありますか?私はこのようなエラーを引き起こす可能性のある他の問題について考えることはできません。どの部分が私を混乱させているのかわからない。
は、ここに私のコードです:
class Person {
var name: String
var age: Int
let birthday: String
init(name: String, age: Int, birthday: String) {
self.name = name
self.age = age
self.birthday = birthday
}
}
class Student: Person {
var isEnrolled: Bool
var numberOfClasses: Int
init(isEnrolled: Bool, numberOfClasses: Int) {
self.isEnrolled = isEnrolled
self.numberOfClasses = numberOfClasses
super.init(name: name, age: age, birthday: birthday) {
self.name = name
self.age = age
self.birthday = birthday
}
}
}