노승현
오버워치 캐릭터 추상클래스 사용하기 본문
package class01;
abstract class Character {
String name;
int off;
int def;
int hp;
void printInfo() {
System.out.println(this.name+"는(은) 공격 "+this.off+" 방어력 "+this.def+" 체력 "+this.hp+"입니다.");
}
abstract void hello();
abstract void attack();
}
abstract class Tank extends Character {
Tank(String name) {
this.off = 100;
this.def = 200;
this.hp = 200;
}
@Override
void hello() {
System.out.println(this.name+"(이)가 인사를 합니다.");
}
@Override
void attack() {
System.out.println(this.name+"(이)가 공격을 합니다.");
}
}
abstract class Deal extends Character {
Deal(String name) {
this.off = 200;
this.def = 50;
this.hp = 100;
}
@Override
void hello() {
System.out.println(this.name+"(이)가 인사를 합니다.");
}
@Override
void attack() {
System.out.println(this.name+"(이)가 공격을 합니다.");
}
}
abstract class Heal extends Character{
Heal(String name){
this.off=50;
this.def=100;
this.hp=50;
}
void healing() {
System.out.println(this.name+"가 힐을 합니다.");
}
@Override
void hello() {
System.out.println(this.name+"(이)가 인사를 합니다.");
}
@Override
void attack() {
System.out.println(this.name+"(이)가 공격을 합니다.");
}
}
class Reinhardt extends Tank{
Reinhardt(String name) {
super(name);
this.name = "라인하르트";
}
}
class Zarya extends Tank{
Zarya(String name) {
super(name);
this.name="자리야";
}
}
class Reaper extends Deal{
Reaper(String name){
super(name);
this.name="리퍼";
}
}
class Mei extends Deal{
Mei(String name){
super(name);
this.name="메이";
}
}
class Mercy extends Heal{
Mercy(String name){
super(name);
this.name="메르시";
}
}
class Ana extends Heal{
Ana(String name){
super(name);
this.name="아나";
}
}
public class Test01 {
public static void main(String[] args) {
Reinhardt rein = new Reinhardt("라인하르트");
rein.printInfo();
rein.hello();
rein.attack();
}
}
콘솔창
'JAVA > 문제풀이' 카테고리의 다른 글
도서 판매 프로그램(검색) (0) | 2023.12.10 |
---|---|
음료수 자판기 프로그램 (0) | 2023.12.09 |
추상 클래스와 인터페이스 사용한 티비 동작 (0) | 2023.12.06 |
포켓몬스터 복습 (1) | 2023.12.02 |
포켓몬 상속으로 객체 만들기 (0) | 2023.12.01 |