# 리뷰: 엘프의 연속 확장 ## 문제 아래의 클래스 다이어그램을 참고하여, 출력 예와 같은 결과를 얻으시오. ![클라우드스터딩-자바-상속-리뷰](https://i.imgur.com/bekUtMs.png) ## 출력 예 ``` [엘프] Name: 티란데, HP: 100 [하이엘프] Name: 말퓨리온, HP: 160, MP: 100 [엘프로드] Name: 마이에브, HP: 230, MP: 140, SH: 100 ```
관련 강의로 이동

코드: java 1.8

public class ElvesTest { public static void main(String[] args) { // 객체 생성 Elf elf = new Elf("티란데", 100); HighElf high = new HighElf("말퓨리온", 160, 100); ElfLord lord = new ElfLord("마이에브", 230, 140, 100); // 객체 배열 생성 Elf[] elves = { elf, high, lord }; // 모든 객체 정보 출력 for (int i = 0; i < elves.length; i++) { System.out.println(elves[i].toString()); } } } class Elf { /* 1. 상속을 위한 접근 제한자를 사용하세요. */ private String name; private int hp; public Elf(String name, int hp) { this.name = name; this.hp = hp; } public String toString() { return String.format("[엘프] Name: %s, HP: %d", name, hp); } } class HighElf extends Elf { protected int mp; public HighElf(String name, int hp, int mp) { super(name, hp); this.mp = mp; } public String toString() { return String.format("[하이엘프] Name: %s, HP: %d, MP: %d", name, hp, mp); } } class ElfLord extends HighElf { protected int shield; public ElfLord(String name, int hp, int mp, int shield) { /* 2. 부모의 생성자를 호출하세요. */ this.shield = shield; } /* 3. toString() 메소드를 오버라이딩(재정의) 하세요. */ }

입력

정답이 궁금하다면? 코드를 제출해보세요!