객체에 유연성을 부여하는 다형성
다형성(Polymorphism)
은 객체 지향 프로그래밍의 중요한 개념 중 하나로, 하나의 메서드나 클래스가 다양한 방식으로 동작하는 것을 의미합니다.
다형성을 활용하면 객체가 동일한 메서드나 인터페이스를 통해 서로 다른 방식으로 동작할 수 있습니다.
코드로 이해하는 다형성
아래 코드는 Animal
, Dog
, Cat
클래스를 정의하고, 각 클래스에서 speak
메서드를 다르게 구현하여 다형성을 구현합니다.
다형성 사용 예시
class Animal:
def speak(self):
return "울음 소리를 냅니다."
# Animal 클래스를 상속받음
class Dog(Animal):
# Animal 클래스의 'speak' 메소드를 재정의
def speak(self):
return "멍멍"
# Animal 클래스를 상속받음
class Cat(Animal):
# Animal 클래스의 'speak' 메소드를 재정의
def speak(self):
return "야옹"
# 다형성 사용 예시
animal = Animal()
# '울음 소리를 냅니다.'
print(animal.speak())
dog = Dog()
# '멍멍'
print(dog.speak())
cat = Cat()
# '야옹'
print(cat.speak())
위 코드에서 speak
메서드는 Animal
, Dog
, Cat
클래스에서 각각 다르게 정의되었습니다.
Dog
와 Cat
클래스는 Animal
클래스를 상속받았으며, speak
메서드를 자신만의 방식으로 재정의(오버라이딩)했습니다.
이렇게 동일한 메서드 호출에 대해 각 객체가 다른 동작을 보이는 것을 다형성이라고 합니다.
다형성의 장점은 무엇인가요?
객체 지향 프로그래밍 에서 다형성은 다음과 같은 이점을 갖습니다.
-
객체의 유연성 증가
: 하나의 인터페이스(객체와 상호작용하는 규칙)로 다양한 객체와 데이터를 처리할 수 있습니다. -
코드 재사용성 향상
: 다형성을 활용하면 코드를 재사용하기 쉽고, 프로그램의 확장성과 유지보수가 편리해집니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!