-
10. oop5 - (1) Starcraft Demo (추상클래스)java/코드 리뷰 2020. 4. 2. 20:1712345678910111213141516171819package oop5;/*** 1* @author HYB**/// 추상 클래스 정의public abstract class Unit {String name;void move() {System.out.println("[" + name + "] 이 지정된 포인트로 이동합니다.");}// 추상 메서드 정의abstract void attack();}12345678910111213141516package oop5;/*** 2* @author HYB**/public class Marine extends Unit {@Overridevoid attack() {System.out.println("[" + name + "]은 적을 총으로 사살합니다.");}}12345678910111213141516package oop5;/*** 3* @author HYB**/public class Firebat extends Unit {@Overridevoid attack() {System.out.println("[" + name + "]은 화염으로 적을 사살합니다.");}}12345678910111213141516package oop5;/*** 4* @author HYB**/public class Ghost extends Unit {@Overridevoid attack() {System.out.println("[" + name + "]은 자신을 감추고 적을 공격합니다.");}}12345678910package oop5;public class Overload extends Unit{// 수행문이 없어도 메서드 몸체만 있으면 구현 메서드다@Overridevoid attack() {}}1234567891011121314151617181920212223242526272829package oop5;public class Starcraft {Unit[] units = new Unit[200];int unitCount = 0;void addUnit(Unit unit) {units[unitCount] = unit;unitCount++;System.out.println(unit.name + "이 추가되었습니다. [현재 총 유닛수 = " + unitCount + "]");}void click() {for (int i=0; i<unitCount; i++) {Unit unit = units[i];unit.move();}}void clickA() {for (int i=0; i<unitCount; i++) {Unit unit = units[i];unit.attack();}}}1234567891011121314151617181920212223242526272829303132package oop5;public class Play {public static void main(String[] args) {Starcraft starcraft = new Starcraft();Marine u1 = new Marine();u1.name = "마린";starcraft.addUnit(u1);Marine u2 = new Marine();u2.name = "마린";starcraft.addUnit(u2);Ghost u3 = new Ghost();u3.name = "고스트";starcraft.addUnit(u3);Firebat u4 = new Firebat();u4.name = "파이어뱃";starcraft.addUnit(u4);// 이동starcraft.click();// 공격starcraft.clickA();}}
'java > 코드 리뷰' 카테고리의 다른 글
10. oop7 - (1) LottoDemo (내부 사용 메서드) (0) 2020.04.02 10. oop6 - (1) JobDemo (추상 메서드) (0) 2020.04.02 10. oop4 - (1) ReporterDemo (객체의 형변환) ★ (0) 2020.04.02 10. oop3 - (1) PhoneDemo (형변환) (0) 2020.04.02 10. oop2 - (2) ContactDemo (toString 재정의) (0) 2020.04.02