[Transpotation]
public class Transportation {
public void go() {
}
public void stop() {
}
[Taxi]
public class Taxi extends Transportation {
@Override // @로 시작하는 문법을 어노테이션이라고 한다
public void go() {
System.out.println("택시를 타고 출발");
}
@Override
public void stop() {
System.out.println("택시를 타고 도착");
}
public void checkTaxiNumber() {
System.out.println("택시 번호 확인");
}
[Subway]
public class Subway extends Transportation {
@Override // @로 시작하는 문법을 어노테이션이라고 한다
public void go() {
System.out.println("지하철을 타고 출발");
}
@Override
public void stop() {
System.out.println("지하철을 타고 도착");
}
public void checkRoute() {
System.out.println("지하철 노선 확인");
}
[Main]
public static void main(String[] args) {
Taxi taxi = new Taxi();
Subway subway = new Subway();
Transportation[] transportations = new Transportation[6];
transportations[0] = taxi;
transportations[1] = subway;
transportations[2] = taxi;
transportations[3] = subway;
transportations[4] = taxi;
transportations[5] = subway;
for (int i = 0; i < transportations.length; i++) {
if (transportations[i] instanceof Taxi) {
Taxi tx = (Taxi) transportations[i];
tx.checkTaxiNumber();
} else if (transportations[i] instanceof Subway) {
Subway sw = (Subway) transportations[i];
sw.checkRoute();
}
transportations[i].go();
}
for (Transportation t : transportations) {
t.stop();
}
}
'백엔드개발자 준비하기' 카테고리의 다른 글
[백엔드개발자 준비하기] 인터페이스 (0) | 2023.01.11 |
---|---|
[백엔드개발자 준비하기] 추상클래스 (0) | 2023.01.11 |
[백엔드개발자 준비하기] 상속 (0) | 2023.01.11 |
[백엔드개발자 준비하기] 배열 활용 (0) | 2023.01.06 |
[백엔드개발자 준비하기] 배열 (0) | 2023.01.05 |