Java에서 super 키워드를 사용하던 개발자라면, C#에서는 그에 해당하는 base 키워드를 사용하면 됩니다.
Java의 super 키워드란?
Java의 super 키워드는 직계 부모 클래스(슈퍼클래스)의 인스턴스를 참조합니다. 주로 다음과 같은 용도로 사용됩니다.
- 슈퍼클래스와 서브클래스에 같은 이름의 멤버가 존재할 때, 두 멤버를 구분하기 위해 사용됩니다.
- 서브클래스 내부에서 슈퍼클래스의 생성자를 호출할 때 사용됩니다.
C#의 base 키워드란?
C#의 base 키워드는 부모 클래스인 기반 클래스(base class)의 생성자와 메서드, 필드에 접근하는 데 사용됩니다. 인스턴스 메서드나 생성자 내부에서 호출할 수 있으며, Java의 super와 거의 동일한 역할을 수행합니다.
C# base 키워드 예제
다음 예제는 base 키워드를 사용하여 부모 클래스의 필드 값과 자식 클래스의 필드 값을 구분해 출력하는 코드입니다.
using System;
public class Animal {
public string repColor = "brown";
}
public class Reptile: Animal {
string repColor = "green";
public void display() {
Console.WriteLine("Color: "+base.repColor);
Console.WriteLine("Color: "+repColor);
}
}
public class Demo {
public static void Main() {
Reptile rep = new Reptile();
rep.display();
}
}실행 결과
Color: brown Color: green
위 코드에서 Reptile 클래스는 Animal 클래스를 상속받으며, 두 클래스 모두 repColor라는 같은 이름의 필드를 가지고 있습니다. base.repColor를 사용하면 부모 클래스의 값인 "brown"이 출력되고, 단순히 repColor를 참조하면 자식 클래스의 값인 "green"이 출력됩니다. 이처럼 C#의 base 키워드는 이름 충돌이 발생하는 상황에서 부모 클래스의 멤버에 명확하게 접근할 수 있게 해주는 유용한 도구입니다.