[swift] 클래스의 상속과 초기화 메서드의 접근 제어자
목차
상속
클래스의 상속은 기존 클래스의 속성과 메서드를 상속받아 새로운 클래스를 생성하는 기능입니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.
상속을 위해 기존 클래스를 정의할 때 class
키워드 뒤에 상속받을 클래스의 이름을 명시합니다.
class ParentClass {
var name: String = ""
func sayHello() {
print("Hello, I'm \(name)!")
}
}
class ChildClass: ParentClass {
var age: Int = 0
}
위의 예제에서 ChildClass
는 ParentClass
를 상속받았습니다. 따라서 ChildClass
는 ParentClass
의 속성인 name
과 메서드인 sayHello()
를 사용할 수 있습니다.
let child = ChildClass()
child.name = "John"
child.age = 20
print(child.name) // Output: John
child.sayHello() // Output: Hello, I'm John!
초기화 메서드의 접근 제어자
클래스의 초기화 메서드(init
) 역시 접근 제어자를 사용하여 외부에서의 접근을 제어할 수 있습니다.
public
: 해당 클래스나 모듈의 어디서든 접근 가능internal
: 기본 제어자, 해당 모듈 내에서 접근 가능fileprivate
: 같은 소스 파일 내에서만 접근 가능private
: 해당 클래스 내에서만 접근 가능
class MyClass {
private var name: String
init(name: String) {
self.name = name
}
public func sayHello() {
print("Hello, \(name)!")
}
}
let myObject = MyClass(name: "Alice")
myObject.sayHello() // Output: Hello, Alice!
위의 예제에서 MyClass
의 name
속성은 private
접근 제어자로 지정되었습니다. 따라서 클래스 외부에서 직접 접근이 불가능하며, init
메서드를 통해 초기화하여 사용해야 합니다.