C# Object 클래스란?
C#에서 Object 클래스는 모든 클래스의 최상위 기반 클래스(Base Class)입니다. .NET의 모든 형식은 명시적으로 상속을 선언하지 않아도 암시적으로 Object 클래스를 상속받으며, 따라서 어떤 개체든 Object 타입의 변수에 할당할 수 있습니다.
Object 클래스가 제공하는 대표적인 메서드는 다음과 같습니다.
| 번호 | 메서드 및 설명 |
|---|---|
| 1 | Equals(Object) 지정된 개체가 현재 개체와 같은지 여부를 확인합니다. |
| 2 | Equals(Object, Object) 지정된 두 개체 인스턴스가 서로 같은 것으로 간주되는지 확인합니다. |
| 3 | Finalize() 개체가 가비지 컬렉터에 의해 회수되기 전에 리소스를 해제하도록 허용합니다. |
| 4 | GetHashCode() 개체의 기본 해시 함수 역할을 수행합니다. |
| 5 | GetType() 현재 인스턴스의 정확한 런타임 형식(Type)을 반환합니다. |
| 6 | MemberwiseClone() 현재 개체의 단순 복사본(Shallow Copy)을 생성합니다. |
| 7 | ReferenceEquals(Object, Object) 지정된 두 개체 인스턴스가 동일한 인스턴스인지(참조가 같은지) 확인합니다. |
| 8 | ToString() 현재 개체를 나타내는 문자열을 반환합니다. |
이 메서드들은 필요에 따라 파생 클래스에서 재정의(override)하여 사용할 수 있습니다. 특히 ToString(), Equals(), GetHashCode()는 실무에서 자주 오버라이드하는 메서드입니다.
C#에서 클래스 개체 생성 예제
다음 예제는 C#에서 클래스의 개체를 생성하고, 상속받은 멤버에 접근하는 방법을 보여줍니다.
예제 코드
using System;
namespace MyApplication {
class Demo {
protected string name = "Website";
protected void Display(string str) {
Console.WriteLine("Tabs: " + str);
}
}
class Test : Demo {
static void Main(string[] args) {
Test t = new Test();
Console.WriteLine("Details: " + t.name);
t.Display("Product");
t.Display("Services");
t.Display("Tools");
t.Display("Plugins");
}
}
}위 코드에서 Test 클래스는 Demo 클래스를 상속하므로, 부모 클래스의 protected 멤버인 name 필드와 Display() 메서드를 그대로 사용할 수 있습니다.
실행 결과
Details: Website Tabs: Product Tabs: Services Tabs: Tools Tabs: Plugins
정리
Object 클래스는 C#의 모든 형식이 공통으로 갖추어야 할 기본 동작을 정의하는 뿌리 역할을 합니다. 개체 비교, 해시 코드 생성, 형식 확인, 문자열 변환 등 핵심 기능을 제공하므로, C# 개발자라면 반드시 숙지해야 할 필수 개념입니다.