더북(TheBook)

43.5 부모 클래스 형식 변수에 자식 클래스의 개체 할당하기

자식 클래스의 인스턴스를 부모 클래스 형식 변수에 담을 수 있습니다. 이는 자식 클래스의 인스턴스와 동일합니다. 클래스의 멤버에 정의된 override 키워드는 Object 클래스의 ToString() 메서드를 재정의(오버라이드(override))하겠다는 의미입니다.

> class Developer
. {
.     public override string ToString()
.     {
.         return "개발자";
.     }
. }
>
> class WebDeveloper : Developer
. {
.     public override string ToString() => "웹 개발자";
. }
>
> class MobileDeveloper : Developer
. {
.     public override string ToString() => "모바일 개발자";
. }
>
> var web = new WebDeveloper();
> Console.WriteLine(web);
웹 개발자
> var mobile = new MobileDeveloper();
> Console.WriteLine(mobile);
모바일 개발자

부모 클래스 변수에 자식 클래스의 인스턴스를 할당하는 것은 프로그래밍에 약간의 융통성(flexibility)(유연성)을 주는 행위입니다. 예를 들어 미래에 어떤 값이 들어올지 모르는 경우에는 부모 클래스 변수로 메서드의 매개변수를 만들어 사용하면, 해당 부모 클래스를 상속받는 모든 자식 클래스의 값을 매개변수로 받을 수 있는 여유가 생깁니다. 이러한 구조는 앞으로 배울 인터페이스 상속에도 그대로 적용됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.