추상 클래스와 다형성의 적용
abstract class Car{
abstract void run();
}
class Ambulance extends Car{
void run() {System.out.println("Ambulance is running!");}
}
class Cultivator extends Car{
void run() {System.out.println("Cultivator is running!");}
}
class SportsCar extends Car{
void run() {System.out.println("SportsCar is running!");}
}
Car라는 추상 클래스를 선언하고, "Ambulance, Cultivator, SportsCar" 세 가지 서로 다른 클래스가 이 Car 클래스를 상속받아 각자의 run 메서드를 정의했다.
객체 생성과 배열 초기화
추상 클래스 Car의 자식 클래스들로 객체를 배열로 생성
Car[] cars1 = new Car[3];
cars1 = new Car[] {new Ambulance(),new Cultivator(), new SportsCar()};
배열 cars1은 세 가지 서로 다른 Car객체들로 초기화된다. 배열의 각 요소는 Car의 자식 클래스인 "Ambulance, Cultivator, SportsCar" 의 인스턴스를 참조한다.
하지만 다음과 같이 한 줄로 간단하게 배열을 초기화할 수 도 있다.
Car[] cars2 = {new Ambulance(),new Cultivator(), new SportsCar()};
이는 다형성 덕분에 가능해지고, 이를 이용하면 코드를 더욱 간결하게 작성할 수 있다.
객체 메서드의 호출
객체 배열에 담긴 각 객체의 run 메서드를 호출하기 위해 반복문을 사용한다. 일반적인 for문 뿐만아니라, 향상된 for문을 이용할 수 도 있다.
for(int i = 0; i < cars1.length; i++)
cars1[i].run();
for(Car obj:cars2) {
obj.run();
}
'Java > JAVA 100 문제 풀이' 카테고리의 다른 글
자바 part.4 문제풀이 - 정수 배열에서 최소, 최댓값 찾기 (0) | 2023.07.28 |
---|---|
자바 part.4 문제풀이 - 다형성 이해 : 객체 배열과 매개변수 활용 (0) | 2023.07.27 |
자바 part.4 문제풀이 - 추상 클래스를 이용한 다형성 구현 (0) | 2023.07.27 |
자바 part.4 문제풀이 - 자바 다형성 : super와 casting사용 (0) | 2023.07.27 |
자바 part.4 문제풀이 - 자바의 다형성(polymorphism) (0) | 2023.07.27 |