package com.abs;//추상 클래스 기본틀
//추상 클래스
public abstract class Unit {
	protected String name;
	protected int energy;

	public int getEnergy(){
		return energy;
	}
	//추상 메서드
	abstract public void decEnergy(); // 에너지 소모
}





package com.abs;

public class Zerg extends Unit{
boolean fly;
	
	public Zerg(String name, boolean fly){
		this.name = name;
		this.energy = 100;
		this.fly = fly;
	}
	//unit의 추상메서드 구현
	public void decEnergy(){
		energy -= 6;
	}
}





package com.abs;

public class Protoss extends Unit{
	boolean fly;
	
	public Protoss(String name, boolean fly){
		this.name = name;
		this.energy = 100;
		this.fly = fly;
	}
	//unit의 추상메서드 구현
	public void decEnergy(){
		energy--;
	}

}





package com.abs;

public class Terran extends Unit{
boolean fly;
	
	public Terran(String name, boolean fly){
		this.name = name;
		this.energy = 100;
		this.fly = fly;
	}
	//unit의 추상메서드 구현
	public void decEnergy(){
		energy -= 3;
	}
}





package com.abs;

public class UnitTest {
	public static void main(String[] args){
		Zerg z1 = new Zerg("승리",false);
		z1.decEnergy();
		System.out.println("z1의 energe : "+z1.getEnergy());
		
		Protoss p1 = new Protoss("행복",true);
		p1.decEnergy();
		System.out.println("p1의 energe : "+p1.getEnergy());
		
		Terran t1 = new Terran("파도",false);
		t1.decEnergy();
		System.out.println("t1의 energe : "+t1.getEnergy());
	}

}

z1의 energe : 94

p1의 energe : 99
t1의 energe : 97


'Java > Abstract Class' 카테고리의 다른 글

예비  (0) 2012.04.11
추상 메소드  (0) 2012.04.11
추상클래스 기본  (0) 2012.04.11

+ Recent posts