Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

노승현

오버워치 캐릭터 추상클래스 사용하기 본문

JAVA/문제풀이

오버워치 캐릭터 추상클래스 사용하기

nsh95 2023. 12. 6. 21:29
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();
		
		
	}
}

 

콘솔창