자바상속과인터페이스문제인데 제발좀 가르쳐주세여 ㅠ.ㅠ

자바상속과인터페이스문제인데 제발좀 가르쳐주세여 ㅠ.ㅠ

작성일 2008.09.27댓글 1건
    게시물 수정 , 삭제는 로그인 필요

다음 코드를 상세히 읽고 부족한 부분을 완성해 주십시오.

 

public abstract class Superman {
    FlyBehavior flyBehavior;
    FightBehavior fightBehavior;
     public Superman() { }
     public abstract void display();
     public void performFly() {
        flyBehavior.fly();
     }    
     public void performFight() {
        fightBehavior.fight();
     }    
     public void setFlyBehavior(FlyBehavior fb) {
        flyBehavior = fb;
     }    
     public void setFightBehavior(FightBehavior qb) {
        fightBehavior = qb;
     }
}

 Public class Ironman extends Superman {
    public Ironman() {
          fightBehavior = new Fight();
          flyBehavior = new FlyWithWings();
    }

    public void display() {
          system.out.println(“아이언맨”);
    }
}

 Public class ModelSuperman extends Superman {
    public ModelSuperman() {
          flyBehavior = new FlyNoWay();
          fightBehavior = new Fight();
    }

    public void display() {
          system.out.println(“저는 모형 슈퍼맨입니다”);
    }
}

public interface FightBehavior {
    public void fight();
}

public class Fight implements FightBehavior {
    public void fight() {
        System.out.println("퍽!!!");
    }
}

public interface FlyBehavior {
    public void fly();
}

public class FlyWithWings implements FlyBehavior {
    public void fly() {
        System.out.println("날고있어요!!");
    }
}

public class FlyNoWay implements FlyBehavior {
    public void fly() {
        System.out.println("저는 날 수 없습니다.");
    }
}

Public class FlyRocketPowered implements FlyBehavior {
    public void fly() {
          system.out.println(“로켓추진으로 날아갑니다”);
    }
}

위와 같은 클래스와 인터페이스들이 있을 때 아래의 SupermanSimulator 클래스를 실행하여 하단의 결과가 나오도록 클래스에서 빠진 부분을 작성하세요.

 Public class SupermanSimulator {

    public static void main(String[] args) {

          Superman james = new Ironman();

            james.      (); <-- 여기에 들어갈 구문은?

             <-- 여기에 들어갈 구문은?

             Superman model = new ModelSuperman();

            model.performFly();

              <-- 여기에 들어갈 구문은?

            model.performFly();

    }

}

 

 

결과:

%java SupermanSimulator

!!!

날고있어요!!

저는 날 수 없습니다.

로켓추진으로 날아갑니다



profile_image 익명 작성일 -

public class SupermanSimulator {

    public static void main(String[] args) {

          Superman james = new Ironman();

            james.performFight();
            james.performFly();
           
            Superman model = new ModelSuperman();

            model.performFly();

            model.setFlyBehavior(new FlyRocketPowered());
            model.performFly();
    }

}

 

위의 소스에서 클래스 정의시 Public -> public

system.out.... -> System.out.... 으로 수정해 주세요.

 

디자인 패턴의 strategy 패턴 예제 같네요.. 헤드퍼스트 design pattern책의 예제인가요?

 

문제좀 풀어주세여.ㅠ.ㅠ

급해서 그런데.제발좀 가르쳐주세요. 될수있으면 풀이과정도 가르쳐주세여.ㅠ.ㅠ ( )안에 들어갈 답좀...

atmege128 제발좀 알려주세여~ ㅠ.ㅠ...

... ㅠ.ㅠ전공이 기계설계이여서 로봇 바디 프레임과 기타... 제발 가르쳐 주세여...흑흑 2. 또 어플리케이션 보드가... 데이터 시트를 확보하는 것이 가장 큰 문제이고요. 그...

fz20과fz30중무엇을사야할까요.ㅠ제발좀

학생입니다 가격문제문제지만 지금 fz20 풀셋은... fz30으로 업그레이드돼면서 좋아진점을 가르쳐주세요... 5.인터페이스 업그레이드 FZ20은 수동모드 조작시...

주세여ㅠ.ㅠ!

... 군대에대해 아직잘몰라서 쫌가르쳐주세요... 제발 좀 자세하게 부탁드릴께요. → 이것도 선크림이랑... 큰 문제가 되지 않을 듯 싶습니다. 6. 그리고 처음으로 면회를 갈 건데...