자식 클래스의 인스턴스를 생성하면 자식 클래스의 생성자가 호출됩니다. 이때 자식 클래스의 생성자에서 특정한 기능을 구현하지 않고 부모 클래스의 생성자에서 구현할 때는 자식 클래스의 생성자에서 바로 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 클래스를 가리킵니다.