강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

max_sungrok님의 프로필 이미지
max_sungrok

작성한 질문수

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

메소드 오버라이딩

기존 fly를 move로 수정해도 무방할까요?

작성

·

201

0

class unit:
    def __init__(self, name, hp, speed):
        self.name = name
        self.hp = hp
        self.speed = speed
   
    def move(self, location):
        print("[지상 유닛 이동]")
        print("{0}: {1} 방향으로 이동합니다. [속도 {2}]"\
            .format(self.name, location, self.speed))


class Attackunint(unit): #unit 클래스 상속받기
    def __init__(self, name, hp, speed, damage):
        unit.__init__(self, name, hp, speed) #unit 클래스 상속받기
        self.damage = damage

    def attack(self, location):
        print("{0}: {1} 방향으로 적군을 공격합니다. [공격력 {2}]".format(self.name, location, self.damage))
       
    def damaged(self, damage):
        print("{0}: {1} 데미지를 입었습니다".format(self.name, damage))
        self.hp -= damage
        print("{0}: 현재 체력은 {1}입니다".format(self.name, self.hp))
        if self.hp <= 0:
            print("{0}: 파괴되었습니다".format(self.name))

class Flyable:
    def __init__(self, flying_speed):
        self.flying_speed = flying_speed

    def move(self, name, location):
         print("[공중 유닛 이동]")
         print("{0} : {1} 방향으로 날아갑니다.[속도 {2}]"\
             .format(name, location, self.flying_speed))
       

class FlaybleAttackUnit(Attackunint, Flyable):
    def __init__(self, name, hp, damage, flying_speed):
        Attackunint.__init__(self, name, hp, 0, damage) #지상스피드 0
        Flyable.__init__(self, flying_speed)
 
기존 fly를 move로 수정하면 용량을 줄일 수 있지 않을까해서요

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
max_sungrok님의 프로필 이미지
max_sungrok

작성한 질문수

질문하기