[python] 클래스 상속을 통한 다형성 구현 예제

다형성(polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이는 서로 다른 하위 클래스들이 공통된 상위 클래스를 상속받아 다양한 방식으로 동작할 수 있는 능력을 의미합니다. Python에서는 클래스 상속을 통해 다형성을 구현할 수 있습니다. 이제 다음과 같이 Animal이라는 상위 클래스를 정의하고, 이를 상속받는 Dog와 Cat 클래스를 구현하는 예제를 살펴보겠습니다.

# Animal 클래스 정의
class Animal:
    def speak(self):
        pass

# Animal 클래스를 상속받는 Dog 클래스 정의
class Dog(Animal):
    def speak(self):
        return "멍멍!"

# Animal 클래스를 상속받는 Cat 클래스 정의
class Cat(Animal):
    def speak(self):
        return "야옹!"

위의 예제에서는 Animal 클래스를 정의하고, 이를 상속받아 Dog와 Cat 클래스를 정의합니다. 각 클래스는 speak() 메서드를 오버라이딩하여 해당 동물의 울음 소리를 반환하도록 구현합니다. 이제 이를 테스트해 보겠습니다.

# 다형성을 테스트하는 예제
def animal_sound(animal):
    print(animal.speak())

dog = Dog()
cat = Cat()

animal_sound(dog)  # "멍멍!" 출력
animal_sound(cat)  # "야옹!" 출력

위의 예제에서는 animal_sound() 함수를 통해 다형성을 테스트합니다. 이 함수는 Animal 객체를 인자로 받아서 speak() 메서드를 호출하여 동물의 울음 소리를 출력합니다. 이때 Dog와 Cat 객체를 전달하여 각각 “멍멍!”과 “야옹!”이 출력되는 것을 확인할 수 있습니다.

이처럼 Python의 클래스 상속을 통해 간단하게 다형성을 구현할 수 있습니다.

이 글은 다음 자료를 참고하여 작성되었습니다.