Unity/개념

[Unity] Override와 Overloading

turbulence93 2025. 7. 30. 21:04

1. 오버라이드 (Override)

상속 관계에서 부모 클래스의 메서드를 자식 클래스가 재정의(덮어쓰기)하는 것

  • 키워드: virtual, override
  • 조건: 부모 클래스 메서드는 virtual 또는 abstract, 자식 클래스는 override
  • 목적: 부모가 정의한 기본 동작을 자식이 상황에 맞게 바꿔서 사용
class Animal 
{
    public virtual void Speak() 
    {
        Console.WriteLine("Animal sound");
    }
}

class Dog : Animal 
{
    public override void Speak() 
    {
        Console.WriteLine("Bark");
    }
}

2. 오버로딩 (Overloading)

같은 이름의 메서드를 매개변수의 종류, 개수, 순서에 따라 여러 개 정의하는 것

  • 조건: 메서드 이름은 같되 시그니처(매개변수 리스트)가 달라야 함
  • 목적: 유연하게 여러 방식으로 같은 동작을 처리
class MathUtils 
{
    public int Add(int a, int b) => a + b;
    public float Add(float a, float b) => a + b;
    public int Add(int a, int b, int c) => a + b + c;
}

3. 간단 요약

  • 오버라이드는 상속 + 다형성,
  • 오버로딩은 편의성과 인터페이스 다양성을 위한 기능