반응형
package practice;
public class Genensis extends Car{
@Override
public void turnOn() {
System.out.println("Genensis 시동을 켭니다.");
}
@Override
public void run() {
System.out.println("Genensis 달립니다.");
}
@Override
public void stop() {
System.out.println("Genensis 멈춥니다.");
}
@Override
public void turnOff() {
System.out.println("Genensis 시동을 끕니다.");
}
}
package template;
public class AdvancedLevel extends PlayerLevel {
@Override
public void run() {
System.out.println("빨리 달린다.");
}
@Override
public void jump() {
System.out.println("높게 jump ");
}
@Override
public void turn() {
System.out.println("못돔"); }
@Override
public void showLevelMessage() {
System.out.println("-------------중급 레벨------------");
}
}
package template;
public class BeginnerLevel extends PlayerLevel {
@Override
public void run() {
System.out.println("천천히 달린다.");
}
@Override
public void jump() {
System.out.println("jump 모름");
}
@Override
public void turn() {
System.out.println("못돔"); }
@Override
public void showLevelMessage() {
System.out.println("-------------초급 레벨------------");
}
}
package template;
public abstract class PlayerLevel {
public abstract void run();
public abstract void jump();
public abstract void turn();
public abstract void showLevelMessage();
final public void go(int count) {
run();
for (int i = 0; i < count; i++) {
jump();
}
turn();
}
}
package template;
public class SuperLevel extends PlayerLevel {
@Override
public void run() {
System.out.println("아주빨리 달린다.");
}
@Override
public void jump() {
System.out.println("아주높게 jump ");
}
@Override
public void turn() {
System.out.println(" turn turn");
}
@Override
public void showLevelMessage() {
System.out.println("-------------고급 레벨------------");
}
/*
* -------------초급 레벨------------
천천히 달린다.
jump 모름
못돔
-------------중급 레벨------------
빨리 달린다.
높게 jump
높게 jump
못돔
-------------고급 레벨------------
아주빨리 달린다.
아주높게 jump
아주높게 jump
아주높게 jump
turn turn
*/
}
35. 템플릿 메서드 활용하기
36. 코딩해 보세요
package practice;
import java.util.ArrayList;
public class CarTest {
public static void main(String[] args) {
ArrayList<Car> carList = new ArrayList<Car>();
carList.add(new Genensis());
carList.add(new Sonata());
carList.add(new Avante());
carList.add(new Grandeur());
for (Car car : carList) {
car.go();
System.out.println("----------------");
}
/*
* Genensis 시동을 켭니다. Genensis 달립니다. Genensis 멈춥니다. Genensis 시동을 끕니다.
* ---------------- Sonata 시동을 켭니다. Sonata 달립니다. Sonata 멈춥니다. Sonata 시동을 끕니다.
* ---------------- Avante시동을 켭니다. Avante달립니다. Avante멈춥니다. Avante시동을 끕니다.
* ---------------- Grandeur 시동을 켭니다. Grandeur 달립니다. Grandeur 멈춥니다. Grandeur 시동을
* 끕니다. ----------------
*
*/
}
}
package practice;
public class Avante extends Car{
@Override
public void turnOn() {
System.out.println("Avante시동을 켭니다.");
}
@Override
public void run() {
System.out.println("Avante달립니다.");
}
@Override
public void stop() {
System.out.println("Avante멈춥니다.");
}
@Override
public void turnOff() {
System.out.println("Avante시동을 끕니다.");
}
}
package practice;
public abstract class Car {
public abstract void turnOn();
public abstract void run();
public abstract void stop();
public abstract void turnOff();
final public void go() {
turnOn();
run();
stop();
turnOff();
}
}
반응형
'스프링, 자바' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 30회차 미션 (0) | 2020.09.08 |
---|---|
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 29회차 미션 (0) | 2020.09.07 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 27회차 미션 (0) | 2020.09.05 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 26회차 미션 (0) | 2020.09.04 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 25회차 미션 (0) | 2020.09.03 |