[TIL] 오버로딩과 오버라이딩

백성은·2025년 4월 17일

TIL

목록 보기
15/34

✅ 들어가기앞서

오버로딩과 오버라이딩은 이름은 비슷하지만 완전히 다른 개념이다.
아래에서 간단하게 구분하고, 차이점을 정리해보자


✅ 오버로딩(Overloading)

같은 이름의 메서드를 매개변수의 수나 타입을 다르게 해서 여러 개 정의하는 것

오버로딩 예시

        public void move()
        {
            Console.WriteLine("이동");
        }

        public void move(int x)
        {
            Console.WriteLine($"{x}만큼 이동");
        }

        public void move(int x, string name)
        {
            Console.WriteLine($"{name}가 {x}만큼 이동");
        }

같은 동작을 매개변수만을 다르게 해서 약간 다르게 동작이 가능하다.

오버로딩을 사용하는 이유

  • 코드 가독성 향상
  • 유지보수성 향상
  • 매개변수에 따른 다양한 동작으로 유연성 증가

✅ 오버라이딩(Overriding)

  • 부모 클래스의 메서드를 자식 클래스가 자기 방식대로 다시 정의하는 것

오버라이딩 예시

public class Program 
{
    public virtual void move() 
    {
        Console.WriteLine("부모 이동");
    }
}

public class ChildProgram : Program 
{
    public override void move() 
    {
        Console.WriteLine("자식 이동!");
    }
}

부모클래스에 virtual가 있으면 자식클래스에 override를 이용하여 덮어쓰기 가능하다

오버라이딩을 사용하는 이유

  • 다형성 구현
  • 유지보수 용이
  • 코드의 재사용

✅ 결론

  • 오버로딩과 오버라이딩은 아예 다른 개념이다.
  • 같은 메서드 이름에 매개변수를 다르게 사용하면 오버로딩
  • 부모-자식 구조를 만들고 덮어쓰는게 오버라이딩
profile
게임 개발일지

0개의 댓글