[JAVA]46.오버라이딩으로 해결

손영민's avatar
Mar 09, 2025
[JAVA]46.오버라이딩으로 해결

1.ch04에 StarGame 만들고, 오버라이드로 해결하기

Protoss 만들어서 추상적인 것에 의존하기 (attack 함수 결국 한개에요)
package ex05.ch04; class Protoss { public int getHp() { return 0; } public int getPower() { return 0; } public void setHp(int hp) { } public void setPower(int power) { } public void attack(Protoss unit) { unit.setHp(unit.getHp() - this.getPower()); } } class Zealot extends Protoss { int hp = 100; int power = 20; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } public int getPower() { return power; } public void setPower(int power) { this.power = power; } } class Dragon extends Protoss { int hp = 100; int power = 10; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } public int getPower() { return power; } public void setPower(int power) { this.power = power; } } class DarkTemplar extends Protoss { int hp = 100; int power = 70; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } public int getPower() { return power; } public void setPower(int power) { this.power = power; } } class River extends Protoss { int hp = 100; int power = 50; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } public int getPower() { return power; } public void setPower(int power) { this.power = power; } } class Archon extends Protoss { int hp = 100; int power = 70; public int getHp() { return hp; } public void setHp(int hp) { this.hp = hp; } public int getPower() { return power; } public void setPower(int power) { this.power = power; } } public class StarGame { public static void main(String[] args) { Protoss p1 = new Zealot(); Protoss p2 = new Zealot(); Protoss p3 = new Dragon(); Protoss p4 = new Dragon(); Protoss p5 = new DarkTemplar(); Protoss p6 = new DarkTemplar(); Protoss p7 = new River(); Protoss p8 = new River(); Protoss p9 = new Archon(); Protoss p10 = new Archon(); p1.attack(p3); p1.attack(p5); p7.attack(p10); p9.attack(p7); p4.attack(p6); p7.attack(p8); System.out.println("드라군의 hp : " + p3.getHp()); System.out.println("다크템플러의 hp : " + p5.getHp()); System.out.println("아콘의 hp : " + p10.getHp()); System.out.println("리버의 hp : " + p7.getHp()); System.out.println("다크템플러의 hp : " + p6.getHp()); System.out.println("리버의 hp : " + p8.getHp()); } }
Share article

sson17