[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의 클래스 상속을 통해 간단하게 다형성을 구현할 수 있습니다.
이 글은 다음 자료를 참고하여 작성되었습니다.
- https://www.geeksforgeeks.org/polymorphism-in-python/