더북(TheBook)

자식 클래스의 인스턴스를 생성하면 자식 클래스의 생성자가 호출됩니다. 이때 자식 클래스의 생성자에서 특정한 기능을 구현하지 않고 부모 클래스의 생성자에서 구현할 때는 자식 클래스의 생성자에서 바로 base() 코드를 사용하여 부모 생성자를 호출할 수 있습니다. 이처럼 생성자도 메서드처럼 부모와 자식 클래스 간에 기능이 동일하다면 부모 클래스에 그 기능을 넣어 자식 클래스에서 재사용합니다.

base 키워드를 사용하여 부모의 멤버에 접근하는 방법을 다시 한 번 알아보겠습니다. 다음 내용을 입력한 후 실행해 보세요.

base 키워드로 부모 클래스의 멤버에 접근: BaseKeyword.cs

using System;

namespace BaseKeyword
{
    public class Car
    {
        private string name;
        public Car(string name)
        {
            this.name = name;
        }
        public void Run() => Console.WriteLine($"{this.name}가 달린다.");
    }
    public class My : Car
    {
        public My() : this("나의 자동차") { }
        public My(string name) : base(name) { }
    }
    public class Your : Car
    {
        public Your() : base("너의 자동차") { }
    }

    class BaseKeyword
    {
        static void Main()
        {
            (new My()).Run();
            (new My("나의 끝내주는 자동차")).Run();
            new Your().Run();
        }
    }
}

실행 결과

나의 자동차가 달린다.
나의 끝내주는 자동차가 달린다.
너의 자동차가 달린다.

C#에서 base 키워드는 현재 클래스의 부모 클래스를 의미합니다. 따로 상속 구문을 지정하지 않았으면 base 키워드는 Object 클래스를 가리킵니다.

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