자바상속과인터페이스문제인데 제발좀 가르쳐주세여 ㅠ.ㅠ
-
게시물 수정 , 삭제는 로그인 필요
다음 코드를 상세히 읽고 부족한 부분을 완성해 주십시오.
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
퍽!!!
날고있어요!!
저는 날 수 없습니다.
로켓추진으로 날아갑니다
다음 코드를 상세히 읽고 부족한 부분을 완성해 주십시오.
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
퍽!!!
날고있어요!!
저는 날 수 없습니다.
로켓추진으로 날아갑니다