[swift] 서브클래싱과 슈퍼클래스의 관계

이번에는 객체지향 프로그래밍에서 중요한 개념 중 하나인 서브클래싱(Subclassing)슈퍼클래스(Superclass)의 관계에 대해 알아보겠습니다.

서브클래싱과는 무엇인가요?

서브클래싱은 기존 클래스를 확장하거나 변형하여 새로운 클래스를 만드는 것을 말합니다. 이때 새로운 클래스는 기존 클래스의 모든 특성을 상속받게 됩니다.

서브클래스는 기존 클래스의 모든 속성과 메서드를 물려받으면서, 자체적으로 새로운 속성이나 메서드를 추가할 수 있습니다.

슈퍼클래스와의 관계는?

서브클래스는 한 개 이상의 슈퍼클래스로부터 상속을 받습니다.

이때 서브클래스는 슈퍼클래스의 모든 속성과 메서드를 사용할 수 있으며, 필요에 따라 재정의(override)하여 자신에게 맞게 변경할 수 있습니다.

예제 코드

class Vehicle {
    var currentSpeed = 0.0
    func makeNoise() {
        // some noise
    }
}

// Vehicle 클래스를 상속받는 Bicycle 클래스
class Bicycle: Vehicle {
    var hasBasket = false
}

// Vehicle 클래스를 상속받는 Car 클래스
class Car: Vehicle {
    var gear = 1
    override func makeNoise() {
        // car noise
    }
}

위 코드에서 Bicycle 클래스와 Car 클래스는 Vehicle 클래스를 상속받아 새로운 클래스를 정의하는 예시입니다.

결론

서브클래싱을 통해 기존 클래스의 기능을 재활용하고 확장하여 새로운 클래스를 생성할 수 있습니다. 슈퍼클래스와 서브클래스의 관계를 이해하고 잘 활용하면 코드의 재사용성과 유지보수성을 높일 수 있습니다.

더 많은 정보는 Swift 공식 문서를 참고해 주세요.