투케이2K

126. (python/파이썬) [Mac Os] : [문법] : abc 모듈 사용해 추상 클래스 구현 - abstract 본문

Python

126. (python/파이썬) [Mac Os] : [문법] : abc 모듈 사용해 추상 클래스 구현 - abstract

투케이2K 2024. 5. 16. 19:57

[개발 환경 설정]

개발 툴 : VsCode

개발 언어 : python

 

[소스 코드]

# --------------------------------------------------------------
# [import]
# --------------------------------------------------------------
from abc import *
# --------------------------------------------------------------




# --------------------------------------------------------------
# [요약 설명]
# --------------------------------------------------------------
# 1. abc 모듈 은 는 abstract base class 의 약자로 파이썬에서 추상클래스 구현에 사용되는 모듈 입니다
# --------------------------------------------------------------
# 2. 추상클래스란 하나 이상의 추상 메소드를 포함하는 클래스로 메소드 명(헤더)을 정의해놓고, 메소드 몸체(바디) 내용은 구현하지 않는 클래스입니다
# - 세부적인 메소드 몸체 내용은 상속받은 자식쪽에서 구현 실시
# --------------------------------------------------------------
# 3. 추상클래스 는 다양하게 클래스를 확장시켜 사용할 수 있습니다 
# --------------------------------------------------------------



# --------------------------------------------------------------
# [추상 클래스 생성]
# --------------------------------------------------------------
class UserBase(metaclass=ABCMeta):
    @abstractmethod
    def name(self): # [메소드 헤더 정의]
        pass
 
    @abstractmethod
    def age(self): # [메소드 헤더 정의]
        pass



# --------------------------------------------------------------
# [자식 클래스 생성] : [상속 받은 추상 클래스의 메소드를 모두 정의 해줘야 합니다]
# --------------------------------------------------------------
class UserChild(UserBase):
    def name(self):
        print('이름 : Twok')

    def age(self):
        print('나이 : 30')



# --------------------------------------------------------------
# [main start]
# --------------------------------------------------------------


# [클래스 객체 생성]
userChild = UserChild()


# [메소드 호출 수행]
userChild.name()
userChild.age()


# --------------------------------------------------------------
# [main end]
# --------------------------------------------------------------
 

[결과 출력]

 

 

반응형
Comments