[C#] 6.1.2 파생 형식 개체 생성

파생 형식의 개체가 생성될 때는 기반 형식의 생성자 수행 후에 파생 형식의 생성자를 수행합니다.

▶ 파생 형식의 개체 생성 과정

class Man
{
    internal Man()
    {
        Console.WriteLine("Man 생성자");
    }
}
class Student : Man //Man 클래스 기반으로 파생
{
    internal Student()
    {
        Console.WriteLine("Student 생성자");
    }
}
class Program
{
    static void Main(string[] args)
    {
        Student student = new Student();
    }
}

▶ 실행 결과

Man 생성자
Student 생성자

만약, 기반 형식의 기본 생성자가 없고 매개 변수가 있는 생성자만 있으면 어떻게 해야 할까요? 이때는 다음의 예처럼 파생 형식의 생성자를 캡슐화할 때 base 키워드와 기반 형식 생성에 필요한 인자를 이용하여 초기화해야 합니다.

▶ 기반 형식에 기본 생성자가 없을 때 파생 형식 생성자에서 초기화

class Man
{
    string name;
    internal Man(string name)
    {
        this.name = name;
    }
}
class Student:Man
{
    internal Student(string name):base(name) //기반 클래스 생성 초기화
    {
    }
}
class Program
{
    static void Main(string[] args)
    {
        Student student = new Student("홍길동");
    }
}