# 대마법사 #### CODE <a class='btn btn-default' href='/codes/18371'>Link</a> ``` public class Main { public static void main(String[] args) { // 객체 생성 GreatWizard gandalf = new GreatWizard("간달프", 100, 100, 100); // 상태 출력 System.out.println(gandalf.toString()); // 에너지볼트 gandalf.energeVolt(); } } class Novice { // 필드 protected String name; protected int hp = 100; // 생성자 public Novice(String name, int hp) { this.name = name; this.hp = hp; } // toString public String toString() { return String.format("[Novice] %s(HP: %d)", this.name, this.hp); } } class Wizard extends Novice { // 필드 protected int mp; // 생성자 public Wizard(String name, int hp, int mp) { super(name, hp); this.mp = mp; } // 에너지볼트 public void energeVolt() { System.out.printf("%s의 에너지볼트!\n", this.name); } } class GreatWizard extends Wizard { protected int shield; public GreatWizard(String name, int hp, int mp, int shield) { super(name, hp, mp); this.shield = shield; } /* 3. toString() 메소드를 오버라이딩 하시오. */ public String toString(){ return String.format("[대마법사] %s(HP: %d, MP: %d, SHIELD: %d)", name, hp, mp, shield); } /* 4. 에너지볼트 마법을 오버라이딩 하시오. */ public void energyVolt(){ System.out.printf("%s의 에너지볼트! (대마법사 버프로 데미지 +30 추가)", name); } } ``` #### INPUT ``` ``` #### OUPUT ``` [대마법사] 간달프(HP: 100, MP: 100, SHIELD: 100) 간달프의 에너지볼트! ``` 왜 아웃풋에 간달프의 에너지 볼트! 이것만 나올까요?
# 메소드 오버라이딩 메소드 오버라이딩이란, 부모 메소드를 자식클래스 재정의하는 것입니다. ## 에러 원인 메소드 오버라이딩 시, 오타가 있습니다. energyVolt()를 energeVolt()로 바꾸어보세요.