[swift] 부모 클래스의 메서드를 통해 다양한 자식 클래스의 인스턴스를 처리하는 방법

아래는 이러한 상황에서의 예제 코드입니다.

class Animal {
    func makeSound() {
        // 기본 동물 소리를 출력
        print("Some generic sound")
    }
}

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

class Cat: Animal {
    override func makeSound() {
        print("Meow!")
    }
}

func animalSound(animal: Animal) {
    animal.makeSound()
}

let myDog = Dog()
let myCat = Cat()

animalSound(animal: myDog) // 출력: "Woof!"
animalSound(animal: myCat) // 출력: "Meow!"

위의 예제에서 Animal 클래스는 makeSound 메서드를 정의합니다. DogCat 클래스는 이 메서드를 오버라이드하여 각 동물에 맞는 소리를 출력하도록 구현합니다. animalSound 함수는 Animal 타입을 매개변수로 받아들여 다양한 동물 객체를 처리할 수 있도록 합니다.

이러한 방식으로, 부모 클래스의 메서드를 통해 다양한 자식 클래스의 인스턴스를 처리할 수 있으며, 코드를 보다 유연하고 확장 가능하도록 만들 수 있습니다.

프로그래밍에서 상속과 다형성에 대한 자세한 내용은 Apple의 공식 문서에서 확인할 수 있습니다.