[swift] 부모 클래스의 다형성을 통해 동적인 동작을 실현하는 방법
다형성(polymorphism)은 객체 지향 프로그래밍의 중요한 특징 중 하나로, 같은 이름의 메소드가 다른 클래스에서 서로 다르게 동작하는 것을 의미합니다. 이러한 다형성을 이용하면 부모 클래스를 통해 여러 종류의 자식 클래스를 다루는 동적인 동작을 구현할 수 있습니다. 이를 통해 코드의 재사용성과 유연성을 높일 수 있습니다.
부모 클래스 정의
우선, 다형성을 이용하기 위해서는 부모 클래스를 정의해야 합니다. 아래 예제는 Animal
이라는 부모 클래스를 정의하는 예제입니다.
class Animal {
func makeSound() {
print("Some generic sound")
}
}
자식 클래스 정의
이어서 다양한 종류의 동물을 나타내는 자식 클래스들을 정의합니다. 각각의 자식 클래스는 부모 클래스의 메소드를 오버라이드하여 각자의 특정 동작을 구현합니다.
class Dog: Animal {
override func makeSound() {
print("Bark!")
}
}
class Cat: Animal {
override func makeSound() {
print("Meow!")
}
}
다형성 활용
이제 부모 클래스의 다형성을 이용하여 다양한 자식 클래스를 동일한 형태로 다룰 수 있습니다.
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.makeSound()
}
위의 예제에서 Animal
타입의 배열에 Dog
와 Cat
인스턴스를 함께 넣어서 반복문을 통해 각 동물의 특정 소리를 출력하고 있습니다.
이렇게 부모 클래스의 다형성을 활용하면, 프로그램이 더 유연하고 확장 가능해지며, 유지 보수가 용이해집니다.
결론
다형성은 객체 지향 프로그래밍에서 중요한 원리로, 부모 클래스를 통해 여러 종류의 자식 클래스를 동적으로 다룰 수 있는 많은 장점을 제공합니다. 부모 클래스의 다형성을 적절히 활용하여 유연하고 확장 가능한 코드를 작성할 수 있습니다.