C#에서 base 키워드를 사용하면 자식(파생) 클래스의 생성자에서 부모(기본) 클래스의 생성자를 명시적으로 호출할 수 있습니다.
참고로 같은 클래스 내에서 다른 생성자를 호출할 때는 this 키워드를 사용하며, 반대로 부모 클래스에 존재하는 생성자를 호출할 때는 base 키워드를 사용합니다.
예제 코드
아래 예제는 base 키워드를 사용하여 기본 클래스의 생성자를 호출하는 방법을 보여줍니다. 파생 클래스의 생성자 선언 뒤에 콜론(:)과 함께 base(...)를 붙이면, 파생 클래스 생성자가 실행되기 전에 지정한 인수와 함께 기본 클래스 생성자가 먼저 호출됩니다.
class DemoBase{
public DemoBase(int firstNumber, int secondNumber, int thirdNumber){
System.Console.WriteLine("Base class Constructor");
System.Console.WriteLine($"{firstNumber} {secondNumber} {thirdNumber}");
}
}
class Demo : DemoBase{
public Demo(int firstNumber, int secondNumber, int thirdNumber)
: base(firstNumber, secondNumber, thirdNumber){
System.Console.WriteLine("Derived class Constructor");
System.Console.WriteLine($"{firstNumber} {secondNumber} {thirdNumber}");
}
}
class Program{
static void Main(){
Demo obj = new Demo(1, 2, 3);
Console.ReadLine();
}
}실행 결과
Base class Constructor 1 2 3 Derived class Constructor 1 2 3
코드 설명
DemoBase는 세 개의 정수 매개변수를 받는 생성자를 가진 기본 클래스입니다.Demo클래스는DemoBase를 상속하며, 생성자 선언부 뒤에: base(firstNumber, secondNumber, thirdNumber)를 추가하여 부모 생성자에 인수를 전달합니다.Main메서드에서Demo객체를 생성하면, 출력 결과에서 확인할 수 있듯이 기본 클래스 생성자가 먼저 실행된 후 파생 클래스 생성자가 실행됩니다.
이처럼 base 키워드를 활용하면 상속 구조에서 초기화 순서를 제어하고, 부모 클래스의 생성자 로직을 재사용할 수 있습니다.