base 키워드는 다음과 같이 파생 클래스에서 기본 클래스의 멤버에 액세스하는 데 사용됩니다.

  • 다른 메서드로 재정의된 기본 클래스의 메서드를 호출합니다.

  • 파생 클래스의 인스턴스를 만들 때 호출해야 하는 기본 클래스 생성자를 지정합니다.

생성자, 인스턴스 메서드 또는 인스턴스 속성 접근자에서만 기본 클래스에 액세스할 수 있습니다.

정적 메서드 내에서는 base 키워드를 사용할 수 없습니다

*정적 및 인스턴스 메서드

메서드 선언에 static 한정자가 있는 경우 해당 메서드를 정적 메서드라고 합니다. static 한정자가 없으면 인스턴스 메서드라고 합니다.

정적 메서드는 특정 인스턴스에서는 작동되지 않으므로, 정적 메서드에서 this를 참조하면 컴파일 타임 오류가 발생합니다.

--------------------------------------------------------------------------
using System;
public class BaseClass
{
    int num;

    public BaseClass()
    {
        Console.WriteLine("in BaseClass()");
    }

    public BaseClass(int i)
    {
        num = i;
        Console.WriteLine("in BaseClass(int i)");
    }

    public int GetNum()
    {
        return num;
    }
}

public class DerivedClass : BaseClass //BaseClass클래스를 상속받습니다.
{
    // This constructor will call BaseClass.BaseClass()
    public DerivedClass() : base()
    {
    }

    // This constructor will call BaseClass.BaseClass(int i)
    public DerivedClass(int i) : base(i)
    {
    } 
    static void Main()
    {
        DerivedClass md = new DerivedClass();   //Console.WriteLine("in BaseClass()");
        DerivedClass md1 = new DerivedClass(1); //Console.WriteLine("in BaseClass(int i)");


    }
}

+ Recent posts