- Upcasting, Down casting
1) 업캐스팅(upcating)
상위 클래스로 데이터 타입을 바꾸는 것을 업캐스팅(upcating)이라고 한다.
다음은 EmailSender와 SMSSender 객체를 상위 클래스인 MessageSender 타입의 배열로 upcasting하여 관리하는 예제이다.
중요한 점은 인스턴스는 그 클래스 타입이 사용할 수 있는 메서드와 변수만 접근할 수 있다는 것이다.
또한 하위 클래스에서 재정의한 경우 재정의된 메서드가 우선적으로 호출된다.
abstract class MessageSender { public void test(){ System.out.println("message"); } } |
class EMailSender extends MessageSender { public void test(){ System.out.println("email"); } } |
class SMSSender extends MessageSender { public void test(){ System.out.println("sms"); } } |
public class MainClass { public static void main(String args[]) { MessageSender [] senders = new MessageSender[2]; senders[0] = new EMailSender(); senders[1] = new SMSSender();
for(MessageSender obj : senders){ obj.test(); } } } |
출력 결과 sms |
'Java' 카테고리의 다른 글
자바 프로그래밍 (Java) - 30 : 상속과 접근 제한자 (0) | 2016.07.14 |
---|---|
자바 프로그래밍 (Java) - 29 : 다운캐스팅 (Downcasting)과 ClassCastException (0) | 2016.07.13 |
자바 프로그래밍 (Java) - 27 : 이름 바인딩 (Name Binding) (0) | 2016.07.13 |
자바 프로그래밍 (Java) - 26 : 상속 (final과 abstract - 2) (0) | 2016.07.13 |
자바 프로그래밍 (Java) - 25 : 상속 (final과 abstract - 1) (0) | 2016.07.13 |