🔸required initializer
╱🚧 under construction -> subclass, override, designated initializer, inherited initializer, convenience init
// superclass
class SuperClass {
required init() { ... } // 1️⃣ required (designated) init
}
// subclass
class Subclass: SuperClass {
required init() { ... } // 2️⃣ required init (No `override` here❗️)
}// superclass
class BasePoint {
var x: Double
var y: Double
// ⭐️ required (designated) init
required init(x: Double, y: Double) {
self.x = x
self.y = y
}
}
// subclass
class ColoredPoint: BasePoint {
var color: String
// ⛔ error: 'required' initializer 'init(x:y:)' must be provided
// by subclass of 'BasePoint'.
// required (designated) init
required init(x: Double, y: Double, color: String = "black") {
self.color = color
super.init(x: x, y: y)
}
}Last updated