728x90
· overloading은 같은 이름의 함수를 여러번 호출하면서 다른 방식으로 사용하는 것이다. (정의는 아님. 내 맘대로 정리한 문장)
static void Function(int a)
{
Console.WriteLine(a);
}
static void Function(int a, int b)
{
Console.WriteLine(a + b);
}
static void Main(string[] args)
{
Function(1); // 1
Function(4, 3); // 7
}
Function(int a)와 Function(int a, int b)는 같은 이름을 갖고 있지만 각자 원하는 인자가 다르다. 인자를 넣어주면 알아서 다른 결과값을 출력해준다. 이게 오버로딩이다.
· overriding은 부모 클래스에서 상속받은 내용을 자녀 클래스에서 다시 정의해주는 것을 말한다.
class Program
{
public virtual void Function()
{
Console.WriteLine("부모 클래스");
}
class myClass : Program
{
public override void Function()
{
Console.WriteLine("자식 클래스");
}
}
static void Main(string[] args)
{
myClass myclass = new myClass();
myclass.Function();
}
}
부모 클래스에서 상속받은 내용은 "부모 클래스"를 출력하는 것이었지만 자식 클래스에서 상속받은 내용을 재정의 했기 때문에 (== 오버라이드 했기 때문에) 출력되는 내용은 "자식 클래스" 이다.
오버로딩, 오버라이딩은 객체지향 프로그래밍이라면 모두 해당되는 내용이므로 반드시 알아두어야 한다.
728x90
'언어 > C#' 카테고리의 다른 글
[C#] temp를 사용한 자리 바꿔치기 (0) | 2022.04.25 |
---|---|
[C#] CS0122 보호 수준 때문에 액세스할 수 없습니다 (0) | 2022.04.25 |
[C#] Shallow Copy와 Deep Copy (0) | 2022.04.25 |
[C#] ReadLine 문자열 입력 받기 (0) | 2022.04.25 |
[C#] 상수, 열거 - 가위바위보 개선 (0) | 2022.04.25 |