728x90
목표
- Character라는 부모 클래스 만들기
- Warrior, Wizard 등 자식 클래스에서 상속
- 공격, 이동, 특수 스킬 등의 메서드를 구현
1. 부모 클래스 Character
public class Character {
String name;
int hp;
public Character(String name, int hp) {
this.name = name;
this.hp = hp;
}
public void move() {
System.out.println(name + "이(가) 이동합니다.");
}
public void attack() {
System.out.println(name + "이(가) 기본 공격을 합니다!");
}
public void status() {
System.out.println("[캐릭터] 이름: " + name + ", HP: " + hp);
}
}
2. 전사 클래스 Warrior
public class Warrior extends Character {
public Warrior(String name) {
super(name, 150); // 전사는 HP가 높음
}
@Override
public void attack() {
System.out.println(name + "이(가) 검으로 내려칩니다! (강력한 공격)");
}
public void bash() {
System.out.println(name + "이(가) 방패로 적을 기절시킵니다!");
}
}
3. 마법사 클래스 Wizard
public class Wizard extends Character {
int mp;
public Wizard(String name) {
super(name, 80); // 마법사는 HP가 낮음
this.mp = 100;
}
@Override
public void attack() {
System.out.println(name + "이(가) 마법 화살을 발사합니다!");
}
public void castSpell() {
System.out.println(name + "이(가) 파이어볼을 시전합니다!");
mp -= 10;
}
@Override
public void status() {
super.status();
System.out.println("MP: " + mp);
}
}
4. Main 클래스 – 게임 실행
public class Main {
public static void main(String[] args) {
Warrior w = new Warrior("아서");
Wizard m = new Wizard("메르린");
w.status();
w.move();
w.attack();
w.bash();
System.out.println();
m.status();
m.move();
m.attack();
m.castSpell();
}
}
출력 예시:
[캐릭터] 이름: 아서, HP: 150
아서이(가) 이동합니다.
아서이(가) 검으로 내려칩니다! (강력한 공격)
아서이(가) 방패로 적을 기절시킵니다!
[캐릭터] 이름: 메르린, HP: 80
MP: 100
메르린이(가) 이동합니다.
메르린이(가) 마법 화살을 발사합니다!
메르린이(가) 파이어볼을 시전합니다!
확장 아이디어
- Healer, Archer 클래스 추가
- attack(Character target) → 상대 HP 깎기
- ArrayList<Character>로 팀 구성
- 턴 기반 전투 시스템 만들기
핵심 개념 요약
개념 | 사용 예시 |
상속 | class Warrior extends Character |
오버라이딩 | @Override attack() |
생성자 | super(name, hp) |
다형성 | Character[] party = { new Warrior(...), new Wizard(...) }; |
LIST
'JAVA > 객체지향 프로그래밍 (OOP) 기초' 카테고리의 다른 글
학생 정보 관리 시스템 (0) | 2025.04.13 |
---|---|
강아지/고양이 클래스 만들기 (2) | 2025.04.13 |
부모 타입으로 자식 객체 다루기 (0) | 2025.04.13 |
오버라이딩 개념 (0) | 2025.04.13 |
extends 키워드로 상속하기 (0) | 2025.04.13 |