가이드라인

객체에 유연성을 부여하는 다형성

다형성(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 클래스에서 각각 다르게 정의되었습니다.

DogCat 클래스는 Animal 클래스를 상속받았으며, speak 메서드를 자신만의 방식으로 재정의(오버라이딩)했습니다.

이렇게 동일한 메서드 호출에 대해 각 객체가 다른 동작을 보이는 것을 다형성이라고 합니다.


다형성의 장점은 무엇인가요?

객체 지향 프로그래밍에서 다형성은 다음과 같은 이점을 갖습니다.

  • 객체의 유연성 증가: 하나의 인터페이스(객체와 상호작용하는 규칙)로 다양한 객체와 데이터를 처리할 수 있습니다.

  • 코드 재사용성 향상: 다형성을 활용하면 코드를 재사용하기 쉽고, 프로그램의 확장성과 유지보수가 편리해집니다.

Mission
0 / 1

객체 지향 프로그래밍에서 다형성(Polymorphism)은 무엇을 의미할까요?

여러 클래스를 상속받는 능력

여러 객체를 생성하는 능력

하나의 메서드나 클래스가 다양한 방식으로 작동하는 능력

객체를 삭제하는 능력

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과