--오늘의 학습 범위--
Ch 08. 클래스
CH08_03. 상속
상속의 개념
*부모클래스와 자식클래스가 존재한다.
**부모클래스에는 속성과 메서드가 있다.
***자식 클래스가 부모클래스에 있는
속성과 메서드를 그대로 가지고 올수 있다.
상속 사용 이유/ 방법
많은 몬스터들을 다 각각 클래스 구현해 놓는다면 클래스의 양도 많아지고 유지보수도 어려워지기 때문에 각각 자식 몬스터들을 부모 몬스터에 상속해 놓는다.
땅,물,공중에 관련된 메서드 외 몬스터와 관련된 메서드가 많다면 중복할 필요없이 묶을 수 있지 않을까? 해서 몬스터 클래스 하나 만들어서 세가지 자식 클래스에서 공통된 메서드를 부모 메서드로 쓴다.
--> ⭐클래스들에 중복된 코드를 제거하고
유지보수를 편하게 하기 위해 사용!
부모클래스 정의
class Monster:
def __init__(self,name,health,attack): /생성자 만들어주고
self.name =name
self.health = health
self.attack = attack
def move(self):
print("지상에서 이동하기")
속성
①이름
②체력
③공격력
메서드
①이동하기
자식클래스 정의 / __init__ 모두 생략
class wolf(Monster):
pass / 몬스터에서 상속받은 메서드만 사용 ---> 그래서 pass/ 그냥 정의만 해 놓고 싶을 떄도 사용
class shark(Monster):
def move(self):
print("헤엄치기") /⭐메서드 오버라이딩 : 메서드 재정의
class dragon(Monster):
def move(self):
print("날기")
속성(Monster로 부터 상속받은)
①이름
②체력
③공격력
⭐메서드 오버라이딩 : 메서드 재정의
①헤엄치기
②날기
실습
# 상속 : 클래스에 중복된 코드 제거
# 부모클래스 정의
class Monster:
def __init__(self,name,health,attack):
self.name =name
self.health = health
self.attack = attack
def move(self):
print(f"[{self.name}]지상에서 이동하기")
# 자식클래스 정의
class wolf(Monster): # 괄호 안에 상복 받을 클래스 이름 넣어주면 됨
pass # 부모 클래스 메서드 그냥 쓰고 싶으면 pass
class shark(Monster):
def move(self): #메서드 오버라이딩: 재정의
print(f"[{self.name}]헤엄치기")
class dragon(Monster):
def move(self): #메서드 오버라이딩: 재정의
print(f"[{self.name}]날기")
#인스턴스 만들기
wolf =wolf("울프", 1500, 200)
wolf.move()
shark = shark("샤크",3000,400)
shark.move()
dragon = dragon("드래곤", 8000, 800)
dragon.move()
run
[울프]지상에서 이동하기
[샤크]헤엄치기
[드래곤]날기
고생했다~ 내일도 힘내자~
link :
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'취미부자 > 취미1_코딩' 카테고리의 다른 글
패스트캠퍼스 챌린지 15일차 / 클래스 실습문제 (0) | 2021.11.15 |
---|---|
패스트캠퍼스 챌린지 14일차 / 클래스 / 오버라이딩,클래스 변수 (0) | 2021.11.14 |
패스트캠퍼스 챌린지 12일차 / 클래스/생성자 (0) | 2021.11.12 |
패스트캠퍼스 챌린지 11일차 / 클래스와 객체 (0) | 2021.11.11 |
패스트캠퍼스 챌린지 10일차 / 딕셔너리 (0) | 2021.11.10 |
댓글