파생 형식의 개체가 생성될 때는 기반 형식의 생성자 수행 후에 파생 형식의 생성자를 수행합니다.
▶ 파생 형식의 개체 생성 과정
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("홍길동"); } }