안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
자동 타입 변환은 주로 메서드를 호출할 때 많이 발생합니다.
메서드를 호출할 때에는 매개 변수의 타입과 동일한 매개값을 지정하는 것이 정석이지만,
매개값을 다양화하기 위해 매개 변수에 자식 타입 객체를 지정할 수도 있습니다.
매개 변수의 타입이 클래스일 경우 자식 객체까지도 사용할 수 있습니다.
어떤 자식 객체가 제공되는냐에 따라 메서드의 실행 결과는 다양해질 수 있습니다.
(매개 변수의 다형성) 자식 객체가 부모의 메서드를 오버라이딩(재정의)했다면
메서드 내부에서 오버라이딩된 메서드를 호출함으로써 메서드의 실행 결과는 다양해집니다.
예제)
부모 클래스
public class Vehicle {
public void run() {
System.out.println("차량이 달립니다.");
}
}
Vehicle을 사용하는 클래스
public class Driver {
public void drive(Vehicle vehicle) {
vehicle.run();
}
}
자식 클래스1
public class Bus extends Vehicle {
@Override
public void run() {
System.out.println("버스가 달립니다.");
}
}
자식 클래스2
public class Taxi extends Vehicle {
@Override
public void run() {
System.out.println("택시가 달립니다.");
}
}
실행 클래스
public class DriverExample {
public static void main(String[] args) {
Driver driver = new Driver();
Bus bus = new Bus();//Bus클래스와Taxi클래스는 Vehicle 클래스를 상속하
Taxi taxi = new Taxi(); 고 있으므로 Driver 클래스의 drive메서드의 매개 변수
driver.drive(bus);로 부모 객체인 vehicle대신 bus나 taxi를 사용할 수
driver.drive(taxi);있습니다.
}
}
'자바' 카테고리의 다른 글
JAVA 자바 객체 타입 확인 ( instanceof) (0) | 2017.03.12 |
---|---|
JAVA 자바 강제 타입 변환 ( Casting ) / 자바 강제 타입 변환 (0) | 2017.03.12 |
JAVA 자바 하나의 배열로 객체 관리 (0) | 2017.03.12 |
JAVA 자바 타입 변환과 다형성 필드의 다형성 (0) | 2017.03.12 |
JAVA 자바 타입 변환과 다형성 자동 타입 변환(Promotion) (0) | 2017.03.12 |