Java

자바 프로그래밍 (Java) - 28 : 클래스 업캐스팅 (Upcasting)

n.han 2016. 7. 13. 16:26

- 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();

        }

    }

}

출력 결과

email

sms