[swift] 스위프트 상속과 다형성

스위프트는 객체 지향 프로그래밍 언어로, 상속과 다형성과 같은 중요한 개념을 지원합니다. 이러한 기능들은 코드의 재사용성을 높이고 유연한 프로그래밍을 가능하게 합니다.

상속

상속은 부모 클래스의 속성과 기능을 자식 클래스가 물려받는 것을 의미합니다. 즉, 부모 클래스의 특성을 그대로 이어받아 새로운 클래스를 정의할 수 있습니다.

class Animal {
    var name: String

    init(name: String) {
        self.name = name
    }

    func makeSound() {
        print("Some sound")
    }
}

class Dog: Animal {
    override func makeSound() {
        print("Bark!")
    }
}

위의 예시에서 Dog 클래스는 Animal 클래스를 상속받아 makeSound() 메서드를 오버라이딩하여 새로운 동작을 정의합니다.

다형성

다형성은 한 가지 인터페이스나 기능에 대해 여러 가지 형태를 가질 수 있는 능력을 의미합니다. 스위프트에서는 상속을 통해 다형성을 구현할 수 있습니다.

func describeAnimal(animal: Animal) {
    print("This animal is named \(animal.name)")
    animal.makeSound()
}

describeAnimal() 함수는 상위 클래스 Animal을 매개변수로 받아들이므로 Animal 클래스를 상속받는 모든 클래스를 다룰 수 있습니다. 이는 다형성을 나타내는 예시입니다.

상속과 다형성을 함께 사용하면 유지 보수가 쉬우면서도 효율적인 코드를 작성할 수 있습니다. 이 개념들을 잘 활용하여 프로그램을 설계하면, 객체 지향 프로그래밍의 장점을 최대한 활용할 수 있습니다.

참고문헌:

이제 여러분도 스위프트에서 상속과 다형성을 적절히 활용하여 강력하고 유연한 프로그램을 개발할 수 있을 것입니다!