학습 자료
객체에 유연성을 부여하는 다형성
다형성(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 메서드를 자신만의 방식으로 재정의(오버라이딩)했습니다.
이렇게 동일한 메서드 호출에 대해 각 객체가 다른 동작을 보이는 것을 다형성이라고 합니다.
다형성의 장점은 무엇인가요?
객체 지향 프로그래밍에서 다형성은 다음과 같은 이점을 갖습니다.
-
객체의 유연성 증가: 하나의 인터페이스(객체와 상호작용하는 규칙)로 다양한 객체와 데이터를 처리할 수 있습니다. -
코드 재사용성 향상: 다형성을 활용하면 코드를 재사용하기 쉽고, 프로그램의 확장성과 유지보수가 편리해집니다.
Quiz
0 / 1
객체 지향 프로그래밍에서 다형성(Polymorphism)은 무엇을 의미할까요?
여러 클래스를 상속받는 능력
여러 객체를 생성하는 능력
하나의 메서드나 클래스가 다양한 방식으로 작동하는 능력
객체를 삭제하는 능력
학습 자료
AI 튜터
도움말