JAVA

상속을 활용한 Hero 코드 만들기

jiyoon12 2025. 4. 25. 00:02
  • 아래 클래스 다이어그램을 보고 코드 구현하기

 

package com.inheritance;

public class Hero {

    String name;
    int hp;

    public Hero(String name, int hp) {
        this.name = name;
        this.hp = hp;
    }

    public void attack() {
        System.out.println("공격을 합니다.");
    }
}
package com.inheritance;

public class Warrior extends Hero {

    public Warrior(String name, int hp) {
        // 부모 사용자 정의 생성자가 있다면 super() 키워드를 사용해서
        // 가장 먼저 부모 생성자 호출해야 한다.
        super(name, hp);
    }

    // 부모의 메서드를 재정의 --> 메서드 오버 라이드

    // 어노테이션 주석 + 힌트
    @Override
    public void attack() {
        System.out.println("전사가 공격을 합니다.");
        super.attack();
    }

    public void comboAttack() {
        System.out.println("전사가 콤보 공격을 합니다.");
    }
}
package com.inheritance;

public class Archer extends Hero {

    public Archer(String name, int hp) {
        super(name, hp);
    }

    public void fireArrow() {
        System.out.println("궁수가 공격을 합니다");
    }
}
package com.inheritance;

public class Wizard extends Hero {

    public Wizard(String name, int hp) {
        super(name, hp);
    }

    public void freezing() {
        System.out.println("마법사가 공격을 합니다.");
    }
}