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
을 붙혀줘야 한다.
virtual
은 override
를 대상이 된다는 것을 의미한다.
호출하는 부분에서 자식 클래스의 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
는 자식 클래스에서 부모 클래스의 메서드 형태를 똑같이 가져와서 재정의 하는 것virtual
은override
를 하기 위한 대상을 지정하는 것