C#의 자식 클래스 생성자에서 기본 클래스의 생성자 호출

Muhammad Maisam Abbas 2024년2월16일
  1. C#의 자식 클래스 생성자에서 기본 클래스의 기본 생성자 호출
  2. C#에서base키워드를 사용하여 자식 클래스 생성자에서 기본 클래스 생성자에 인수 전달
C#의 자식 클래스 생성자에서 기본 클래스의 생성자 호출

이 자습서에서는 C#의 자식 클래스 생성자에서 기본 클래스의 생성자를 호출하는 메서드에 대해 설명합니다.

C#의 자식 클래스 생성자에서 기본 클래스의 기본 생성자 호출

C#에서는 자식 클래스의 인스턴스를 만들 때 기본 클래스의 기본 생성자가 컴파일러에 의해 자동으로 호출됩니다. 이 현상은 아래 코드 예제에 나와 있습니다.

using System;

namespace call_constructor_of_base_class {
  public class baseClass {
    public baseClass() {
      Console.WriteLine("This is the Base Class");
    }
  }
  public class childclass : baseClass {
    public childclass() {
      Console.WriteLine("This is the Child Class");
    }
  }

  class Program {
    static void Main(string[] args) {
      childclass c = new childclass();
    }
  }
}

출력:

This is the Base Class
This is the Child Class

위 코드에서baseClass는 기본 클래스이고childclassbaseClass를 상속하는 하위 클래스입니다. 자식 클래스childclass의 인스턴스를 만들 때baseClass의 기본 생성자가 컴파일러에 의해 자동으로 호출됩니다. baseClass의 생성자는childclass의 생성자보다 먼저 실행됩니다. 이 메서드는 자식 클래스의 생성자에서 기본 클래스의 생성자로 인수를 전달하는 데 사용할 수 없습니다.

C#에서base키워드를 사용하여 자식 클래스 생성자에서 기본 클래스 생성자에 인수 전달

자식 클래스의 생성자에서 기본 클래스의 생성자로 인수를 전달하려면 base키워드를 사용해야합니다. base키워드는 하위 클래스의 인스턴스가 작성 될 때 호출되어야하는 기본 클래스의 생성자를 지정합니다. 다음 코드 예제는 C#에서base키워드를 사용하여 자식 클래스의 생성자에서 기본 클래스의 생성자에 인수를 전달하는 방법을 보여줍니다.

using System;

namespace call_constructor_of_base_class {
  public class baseClass {
    public baseClass() {
      Console.WriteLine("This is the Base Class");
    }
    public baseClass(int x) {
      Console.WriteLine("The Child class passed {0} to the Base Class", x);
    }
  }
  public class childclass : baseClass {
    public childclass(int a) : base(a) {
      Console.WriteLine("This is the Child Class");
    }
  }

  class Program {
    static void Main(string[] args) {
      childclass c = new childclass(10);
    }
  }
}

출력:

The Child class passed 10 to the Base Class
This is the Child Class

위의 코드에서 우리는 하위 클래스childclass의 생성자에서 기본 클래스baseClass의 매개 변수화 된 생성자에 10을 전달합니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp Class