[swift] 클래스의 상속과 초기화 메서드의 접근 제어자

목차


상속

클래스의 상속은 기존 클래스의 속성과 메서드를 상속받아 새로운 클래스를 생성하는 기능입니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.

상속을 위해 기존 클래스를 정의할 때 class 키워드 뒤에 상속받을 클래스의 이름을 명시합니다.

class ParentClass {
    var name: String = ""
    
    func sayHello() {
        print("Hello, I'm \(name)!")
    }
}

class ChildClass: ParentClass {
    var age: Int = 0
}

위의 예제에서 ChildClassParentClass를 상속받았습니다. 따라서 ChildClassParentClass의 속성인 name과 메서드인 sayHello()를 사용할 수 있습니다.

let child = ChildClass()
child.name = "John"
child.age = 20

print(child.name)  // Output: John
child.sayHello()  // Output: Hello, I'm John!

초기화 메서드의 접근 제어자

클래스의 초기화 메서드(init) 역시 접근 제어자를 사용하여 외부에서의 접근을 제어할 수 있습니다.

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!

위의 예제에서 MyClassname 속성은 private 접근 제어자로 지정되었습니다. 따라서 클래스 외부에서 직접 접근이 불가능하며, init 메서드를 통해 초기화하여 사용해야 합니다.


참고 자료