본문 바로가기
Python

추상화 동물들의 공통 기능: "소리 내기"

by 헬로제이콥 2025. 12. 29.

[실습 문제] 동물들의 공통 기능: "소리 내기"

목표: 추상 클래스를 만들고, 자식 클래스들이 특정 메서드를 반드시 구현하도록 강제하는 법을 배웁니다.

요구사항:

  1. 추상 클래스 생성: Animal 클래스를 만들고, abc 모듈을 사용하여 추상 클래스로 설정하세요.
  2. 추상 메서드 정의: 모든 동물은 소리를 내야 하므로, cry라는 추상 메서드를 만드세요. (내용은 적지 않습니다.)
  3. 자식 클래스 구현:
    • Dog 클래스: cry 메서드에서 "멍멍!"을 출력하세요.
    • Cat 클래스: cry 메서드에서 "야옹~"을 출력하세요.
  4. 강제성 확인: 만약 자식 클래스에서 cry를 만들지 않으면 에러가 발생하는 원리를 이해합니다.

[미션] 빈칸을 채워 추상화 코드를 완성하세요!

Python
 
from abc import ABC, abstractmethod

# 1. 추상 클래스 정의 (ABC를 상속받아야 함)
class Animal(________):
    
    # 2. 자식들이 반드시 만들어야 할 추상 메서드 선언
    @abstractmethod # 추상 메서드 데코레이
    def cry(self):
        pass

# 3. Animal을 상속받는 Dog 클래스
class Dog(________):
    def ________(self):  # 부모가 정한 이름을 그대로 사용해야 해요!
        print("____________ ")

# 4. Animal을 상속받는 Cat 클래스
class Cat(________):
    def ________(self):
        print("야옹~ 고양이가 웁니다.")

# --- 실행 부분 ---

# 추상 클래스는 직접 객체를 만들 수 없어요! (에러 발생 확인용)
# my_animal = Animal() 

# 자식 클래스로 객체 생성
choco = Dog()
nabi = Cat()

choco.cry()
nabi.cry()

출력 결과 (정답 예시)

Plaintext
 
멍멍! 강아지가 짖습니다.
야옹~ 고양이가 웁니다.