-
12일 차 인터페이스를 이용하여 로봇조립삼성SDS_멀티캠퍼스/Java 2015. 9. 22. 10:54반응형
어택 구현
-----------------------------------------------------------------------------------------public interface Attack {
public void attack();
}
public class MissileAttack implements Attack {
@Override
public void attack() {
// TODO Auto-generated method stub
System.out.println("미사일로 공격");
}
}
public class PushAttack implements Attack{@Overridepublic void attack() {// TODO Auto-generated method stubSystem.out.println("펀치로 공격");}}-----------------------------------------------------------------------------------------무브 구현
-----------------------------------------------------------------------------------------public interface Move {public void move();}public class WalkingMove implements Move{@Overridepublic void move() {// TODO Auto-generated method stubSystem.out.println("걸어서 이동");}}public class FlyingMove implements Move{@Overridepublic void move() {// TODO Auto-generated method stubSystem.out.println("날아서 이동");}}-----------------------------------------------------------------------------------------로봇 구현-----------------------------------------------------------------------------------------abstract class Robot {protected String name;protected Attack attack;protected Move move;public abstract void attack();public abstract void move();public Robot(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Robot [name=" + name + "]";}}-----------------------------------------------------------------------------------------로봇들 구현-----------------------------------------------------------------------------------------public class Mazinga extends Robot {public Mazinga(String name) {super(name);System.out.println(name);attack = new PushAttack();move = new FlyingMove();}@Overridepublic void attack() {// TODO Auto-generated method stubattack.attack();}@Overridepublic void move() {// TODO Auto-generated method stubmove.move();}}public class Lazenca extends Robot {public Lazenca(String name) {super(name);System.out.println(name);attack = new MissileAttack();move = new FlyingMove();}@Overridepublic void attack() {// TODO Auto-generated method stubattack.attack();}@Overridepublic void move() {// TODO Auto-generated method stubmove.move();}}public class TaekwonV extends Robot {public TaekwonV(String name) {super(name);System.out.println(name);attack = new MissileAttack();move = new WalkingMove();}@Overridepublic void attack() {// TODO Auto-generated method stubattack.attack();}@Overridepublic void move() {// TODO Auto-generated method stubmove.move();}}-----------------------------------------------------------------------------------------출력-----------------------------------------------------------------------------------------public class Test {public static void main(String[] args) {Attack ma = new MissileAttack();Attack pa = new PushAttack();Move fm = new FlyingMove();Move wm = new WalkingMove();Robot mazin = new Mazinga("마징가");mazin.setAttack(pa);mazin.setMove(fm);mazin.attack();mazin.move();System.out.println();Robot taek = new TaekwonV("태권V");taek.setAttack(ma);taek.setMove(wm);taek.attack();taek.move();System.out.println();Robot lazen = new Lazenca("라젠카");lazen.setAttack(ma);lazen.setMove(fm);lazen.attack();lazen.move();}}반응형'삼성SDS_멀티캠퍼스 > Java' 카테고리의 다른 글
12일 차 무명클래스 (0) 2015.09.22 12일 차 디자인패턴을 이용한 프로그래밍 (0) 2015.09.22 12일 차 추상클래스, 추상메소드, 상속 (0) 2015.09.22 12일 차 Inner Class(이너클래스) (0) 2015.09.22 (펌) 다형성에 관해서 (0) 2015.09.21