인터페이스를 허용의 의미로 사용한 예
Posted 2015. 4. 3. 12:02package chap7;
import java.io.IOException;
import java.nio.CharBuffer;
// 인터페이스 예제 : 허용의 의미로 사용 됨
interface Repairable{}
class Unit2{
int hitPoint;
final int MAX_HP;
Unit2( int hp ){
MAX_HP = hp;
}
}
class GroundUnit extends Unit2{
GroundUnit( int hp ){ super(hp); }
}
class AirUnit extends Unit2{
AirUnit( int hp ){ super(hp); }
}
class Tank2 extends GroundUnit implements Repairable{
Tank2(){
super( 150 );
hitPoint = MAX_HP;
}
public String toString(){ return "Tank"; }
}
class DropShip extends AirUnit implements Repairable{
DropShip(){
super( 125 );
hitPoint = MAX_HP;
}
public String toString(){ return "DropShip"; }
}
class Marine extends GroundUnit{
public Marine() {
super( 40 );
hitPoint = MAX_HP;
}
public String toString(){ return "Marine"; }
}
class SCV extends GroundUnit implements Repairable{
SCV(){
super( 60 );
hitPoint = MAX_HP;
}
void repair( Repairable r ){
if( r instanceof Unit2 ){
Unit2 u = (Unit2)r;
u.hitPoint = u.MAX_HP;
System.out.println( u + "의 수리 완료");
}
}
public String toString(){ return "SCV"; }
}
public class RepairableEx {
public static void main(String[] args) {
Tank2 t = new Tank2();
DropShip d = new DropShip();
Marine m = new Marine();
SCV s = new SCV();
s.repair(t);
s.repair(d);
// s.repair(m); // implements로 Repairable을 받지 않은 상태.
}
}
'Java !!!' 카테고리의 다른 글
C++과 Java의 다른점 (0) | 2015.04.05 |
---|---|
동적할당 정적할당 개념 (0) | 2015.04.04 |
인터페이스 활용 예 (0) | 2015.04.03 |
instanceof 객체관계를 확인 (0) | 2015.04.02 |
상속 예시 한개 (0) | 2015.04.01 |
- Filed under : Java !!!