이번 포스트에서는 Java의 인터페이스와 다형성을 활용한 대중교통 프로그램을 구현해보겠습니다. 이 예제는 인터페이스 Trans를 정의하고, 이를 구현하는 Bus, Subway, Airplane 클래스를 통해 대중교통 수단의 출발지와 도착지를 입력받아 출력하는 프로그램을 작성합니다.
Trans.java
package quiz;
public interface Trans {
public void start();
public void stop();
public void display();
}
bus.java
package quiz;
import java.util.Scanner;
public class Bus implements Trans {
String depart, destop;
Scanner sc = new Scanner(System.in);
@Override
public void start() {
System.out.println("버스 출발역을 입력하세요:");
depart = sc.nextLine();
}
@Override
public void stop() {
System.out.println("버스 도착역을 입력하세요:");
destop = sc.nextLine();
}
@Override
public void display() {
System.out.println("버스 출발역은 " + depart + " 버스 도착역은 " + destop);
}
}
subway.java
package quiz;
import java.util.Scanner;
public class Subway implements Trans {
String depart, destop;
Scanner sc = new Scanner(System.in);
@Override
public void start() {
System.out.println("지하철 출발역을 입력하세요:");
depart = sc.nextLine();
}
@Override
public void stop() {
System.out.println("지하철 도착역을 입력하세요:");
destop = sc.nextLine();
}
@Override
public void display() {
System.out.println("지하철 출발역은 " + depart + " 지하철 도착역은 " + destop);
}
}
airplane.java
package quiz;
import java.util.Scanner;
public class Airplane implements Trans {
String depart, destop;
Scanner sc = new Scanner(System.in);
@Override
public void start() {
System.out.println("비행기 출발역을 입력하세요:");
depart = sc.nextLine();
}
@Override
public void stop() {
System.out.println("비행기 도착역을 입력하세요:");
destop = sc.nextLine();
}
@Override
public void display() {
System.out.println("비행기 출발역은 " + depart + " 비행기 도착역은 " + destop);
}
}
mainentry.java
package quiz;
public class MainEntry {
public static void main(String[] args) {
Trans[] transports = {new Bus(), new Subway(), new Airplane()};
for (Trans transport : transports) {
transport.start();
transport.stop();
transport.display();
}
}
}
버스 출발역을 입력하세요:
Seoul
버스 도착역을 입력하세요:
Busan
버스 출발역은 Seoul 버스 도착역은 Busan
지하철 출발역을 입력하세요:
Gangnam
지하철 도착역을 입력하세요:
Hongdae
지하철 출발역은 Gangnam 지하철 도착역은 Hongdae
비행기 출발역을 입력하세요:
Incheon
비행기 도착역을 입력하세요:
Jeju
비행기 출발역은 Incheon 비행기 도착역은 Jeju