728x90
반응형
import random
# 1. 메서드 오버라이딩 -> 부모클래스를 자식클래스가 상속하여 재정의
# 2. 클래스 변수 -> 인스턴스들이 모두 공유하는 변수(공개변수)
# 부모클래스
class Monster :
max_num = 1000 #클래스 자체의 변수
def __init__(self, name, health, attack) :
self.name = name
self.health = health
self.attack = attack
Monster.max_num -= 1 # 인스턴스를 사용할 때마다 변수값 감소
def move(self) :
print(f"[{self.name}] : 지상에서 이동하기")
# 자식클래스1
class Wolf(Monster) :
pass # 클래스 그대로 사용
# 자식 클래스2
class Shark(Monster) :
def __init__(self, name, health, attack) : # 생성자 오버라이딩
super().__init__(name, health, attack) # 부모의 생성자 상속 super()
self.skill = ("불뿜기", "꼬리치기", "날개치기") # skill은 불변값이므로 튜플 사용
def move(self) :
print(f"[{self.name}] : 헤엄치기")
def skills(self) :
print(f"[{self.name}] : 스킬 사용 -> {self.skill[random.randint(0,2)]}") # 랜덤 모듈 사용
# 인스턴스 생성
wolf = Wolf("울프", 800, 90)
print(Monster.max_num)
shark = Shark("상어", 500, 80)
print(Monster.max_num)
# 함수 호출
wolf.move()
shark.move()
shark.skills()
728x90
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 파이썬 pickle module 사용법 (0) | 2025.02.02 |
---|---|
[Python] 파이썬 모듈/패키지 (0) | 2025.02.02 |
[Python] 파이썬 상속 - 오버라이딩/오버로딩 (0) | 2025.01.31 |
[Python] 파이썬 생성자 (0) | 2025.01.31 |
[Python] 파이썬 클래스와 객체 (0) | 2025.01.31 |