package com.java1.day18;
interface Repairable {}
class Unit7 {
int hitPoint;
final int MAX_HP;
Unit7(int hp){
MAX_HP = hp;
}
}
class GroundUnit extends Unit7 {
GroundUnit(int hp) {
super(hp);
}
}
class AirUnit extends Unit7 {
AirUnit(int hp) {
super(hp);
}
}
class Tank extends GroundUnit implements Repairable {
Tank() {
super(150);
hitPoint = MAX_HP;
}
@Override
public String toString() {
return "Tank";
}
}
class Dropship extends AirUnit implements Repairable {
Dropship() {
super(125);
hitPoint = MAX_HP;
}
@Override
public String toString() {
return "Dropship";
}
}
class Marine extends GroundUnit {
Marine() {
super(40);
hitPoint = MAX_HP;
}
}
class SCV extends GroundUnit implements Repairable {
SCV() {
super(60);
hitPoint = MAX_HP;
}
void reapir(Repairable r) {
if( r instanceof Unit7) {
Unit7 u = (Unit7) r;
while(u.hitPoint != u.MAX_HP) {
u.hitPoint++;
}
System.out.println(u.toString() + "의 수리가 끝났습니다.");
}
}
@Override
public String toString() {
return "SCV";
}
}