[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
메서드를 정의합니다. Dog
및 Cat
클래스는 이 메서드를 오버라이드하여 각 동물에 맞는 소리를 출력하도록 구현합니다. animalSound
함수는 Animal
타입을 매개변수로 받아들여 다양한 동물 객체를 처리할 수 있도록 합니다.
이러한 방식으로, 부모 클래스의 메서드를 통해 다양한 자식 클래스의 인스턴스를 처리할 수 있으며, 코드를 보다 유연하고 확장 가능하도록 만들 수 있습니다.
프로그래밍에서 상속과 다형성에 대한 자세한 내용은 Apple의 공식 문서에서 확인할 수 있습니다.