[실습 문제] 파이썬 다형성을 이용한 "우리 집 작은 음악회" 만들기
목표: 상속과 오버라이딩을 이해하고, 동일한 메서드 이름(소리내기)을 호출했을 때 각 객체가 서로 다른 결과를 출력하는 '다형성'을 구현합니다.
요구사항:
- 부모 클래스 생성: 악기라는 이름의 부모 클래스를 만드세요. 이 클래스에는 소리내기라는 메서드가 있으며, 실행 시 "악기는 각자 다른 소리를 내요!"라고 출력해야 합니다.
- 자식 클래스 상속 및 재정의(Overriding):
- 피아노 클래스: 악기를 상속받고, 소리내기 메서드에서 "딩동댕~ 아름다운 피아노 소리!"를 출력하도록 만드세요.
- 기타 클래스: 악기를 상속받고, 소리내기 메서드에서 "징~ 징~ 신나는 기타 소리!"를 출력하도록 만드세요.
- 플루트 클래스: 악기를 상속받고, 소리내기 메서드에서 "휘리리릭~ 맑은 플루트 소리!"를 출력하도록 만드세요.
- 객체 생성 및 실행:
- 각 클래스의 인스턴스(우리집_피아노, 내_통기타, 예쁜_플루트)를 하나씩 만드세요.
- 생성한 각 객체의 소리내기() 메서드를 호출하여 결과를 확인하세요.
[문제 도안] 아래 빈칸을 채워 코드를 완성하세요.
Python
# 1. 부모 클래스 '악기' 설계도 만들기
class ________:
def 소리내기(self):
print("악기는 각자 다른 소리를 내요!")
# 2. '악기'를 상속받는 '피아노' 클래스 만들기
class 피아노(________):
def ________(self):
print("딩동댕~ 아름다운 피아노 소리!")
# 3. '악기'를 상속받는 '기타' 클래스 만들기
class 기타(________):
def ________(self):
print("징~ 징~ 신나는 기타 소리!")
# 4. '악기'를 상속받는 '플루트' 클래스 만들기
class 플루트(________):
def ________(self):
print("휘리리릭~ 맑은 플루트 소리!")
# 5. 객체(인스턴스) 생성하기
우리집_피아노 = ________()
내_통기타 = ________()
예쁜_플루트 = ________()
# 6. 메서드 호출하기 (다형성 확인)
print("피아노야, 연주해봐!")
우리집_피아노.________()
print("\n통기타야, 연주해봐!")
내_통기타.________()
print("\n플루트야, 연주해봐!")
예쁜_플루트.________()
print("\n--- 작은 음악회 시작! ---")
피아노야, 연주해봐!
딩동댕~ 아름다운 피아노 소리!
통기타야, 연주해봐!
징~ 징~ 신나는 기타 소리!
플루트야, 연주해봐!
휘리리릭~ 맑은 플루트 소리!
--- 작은 음악회 시작! ---
'Python' 카테고리의 다른 글
| 철저한 보안의 Car 클래스 완성하기 (캡슐화) (0) | 2025.12.29 |
|---|---|
| [실습 문제] 나만의 학생 관리 시스템 만들기(상속) (0) | 2025.12.29 |
| 주소록 만들기 (0) | 2025.12.24 |
| 간단한 자판기 프로그램 (Python) (0) | 2025.12.22 |
| 파이썬의 딕셔너리(Dictionary)는 데이터 자료형 (0) | 2025.12.22 |