SW 기능/C#

OverLoading, Override

tacoyaggi 2024. 2. 2. 09:48

OverLoading

  • 같은 이름의 메서드를 여러번 정의 하는 것.
  • 이때 메서드의 파라미터가 서로 다른 것.
  • 컴파일러는 호출된 메서드의 파라미터를 기반으로 해당되는 메서드를 호출함.

OverLoading 예제

메서드명은 GetAge 로 동일하지만 파라미터로 구분한다. 호출하는 메서드는 파라미터가 없는 GetAge 메서드를 호출한다.

Taco taco = new Taco();
taco.GetAge();

public class Taco
{
    public int GetAge()
    {
        return 1;
    }

    public int GetAge(int a)
    {
        return a;
    }
}

Override

  • override 는 상속 관계에서 사용 한다.
  • 부모 클래스에서 정의된 메서드를 자식 클래스에서 새롭게 구현하고자 할 때 사용 한다.
  • override 는 부모 클래스의 메서드와 동일하게 만들어져야 한다.

Override 예제

Taco 부모 클래스를 상속 받은 Children 클래스 이다. override 를 구현하기 위해서는 부모 메서드에 virtual 을 붙혀줘야 한다.

virtualoverride 를 대상이 된다는 것을 의미한다.

호출하는 부분에서 자식 클래스의 GetAge 메서드를 호출 했고 return 22 가 출력 된다.

Taco taco = new Children();
Console.WriteLine(taco.GetAge());

public class Taco
{
    public virtual int GetAge()
    {
        return 1;
    }
}

public class Children : Taco
{
    public override int GetAge()
    {
        return 22;
    }
}

결론

  • overloading 은 같은 메서드일지라도 파라미터로 구분 짓는다.
  • override 는 자식 클래스에서 부모 클래스의 메서드 형태를 똑같이 가져와서 재정의 하는 것
  • virtualoverride 를 하기 위한 대상을 지정하는 것