필수 생성자로, 슈퍼 클래스에서 정의해둘 경우 서브 클래스가 슈퍼 클래스의 생성자를 상속받지 않는 한 서브클래스에서 반드시 구현해주어야 한다.
class Human {
var name: String?
required init(name: String) {
self.name = name
}
}
class Sodeul: Human {
var nickName: String
init(nickName: String) {
self.nickName = nickName
super.init(name: "")
}
required init(name: String) {// required init 작성
fatalError("init(name:) has not been implemented")
}
}
class Sodeul: Human {
var nickName: String? // 모든 프로퍼티가 기본 값을 가지고 있어 생성자를 따로
//작성하지 않으면 부모 클래스의 지정생성자를 모두 상속
// -> required init을 구현하지않아도 됨
}