Ios 发展 Swift class & 子classes
Ios Development Swift class & Subclasses
我创建了一个 class,其中包含 Condition 类型的可变存储属性。我初始化了 class,一切似乎都很好。
enum Condition {
case poor
case fair
case excellent
}
class Shoe {
var color: Condition?
var laces: Condition?
init(color: Condition, laces:Condition) {
self.color = color
self.laces = laces
}
}
当我子 class 我的基础 class 我有编译器错误。
class Nike: Shoe {
var texture: Condition?
var sole: Condition?
override init(color: Condition, laces: Condition) {
self.texture = texture
self.sole = sole
super.init(color: Condition, laces: Condition)
}
}
由于 (override init) 中的变量,我收到一个编译器错误,提示我正在将 属性 分配给自身,我认为我必须这样做才能初始化值?
第 1 步: 为子项的属性提供值class。
第 2 步: 初始化子类后,为基础 class.
的属性提供值
您忘记向 Nike.init
添加 texture
和 sole
参数。此外,您需要将参数传递给您当前写入 Condition
的 super.init
。试试这个:
class Nike: Shoe {
var texture: Condition?
var sole: Condition?
override init(color: Condition, laces: Condition, texture: Condition, sole: Condition) {
self.texture = texture
self.sole = sole
super init(color: color, laces: laces)
}
}
我创建了一个 class,其中包含 Condition 类型的可变存储属性。我初始化了 class,一切似乎都很好。
enum Condition {
case poor
case fair
case excellent
}
class Shoe {
var color: Condition?
var laces: Condition?
init(color: Condition, laces:Condition) {
self.color = color
self.laces = laces
}
}
当我子 class 我的基础 class 我有编译器错误。
class Nike: Shoe {
var texture: Condition?
var sole: Condition?
override init(color: Condition, laces: Condition) {
self.texture = texture
self.sole = sole
super.init(color: Condition, laces: Condition)
}
}
由于 (override init) 中的变量,我收到一个编译器错误,提示我正在将 属性 分配给自身,我认为我必须这样做才能初始化值?
第 1 步: 为子项的属性提供值class。
第 2 步: 初始化子类后,为基础 class.
的属性提供值您忘记向 Nike.init
添加 texture
和 sole
参数。此外,您需要将参数传递给您当前写入 Condition
的 super.init
。试试这个:
class Nike: Shoe {
var texture: Condition?
var sole: Condition?
override init(color: Condition, laces: Condition, texture: Condition, sole: Condition) {
self.texture = texture
self.sole = sole
super init(color: color, laces: laces)
}
}