Overload
과적하다는 의미로 같은 이름의 메서드를 반환 값 혹은 매개변수를 다른 타입 혹은 다른 개수로 선언하여 다른 형식에
동일하게 작동하는 같은 이름의 메서드를 정의할 수 있다.
private int Multiply(int a, int b)
{
return a * b;
}
private float Multyply(float a, float b)
{
return a * b;
}
private double Multyply(double a, double b)
{
return a * b;
}
}
위 코드 처럼 같은 메서드에 다른 형식의 매개변수 및 반환값을 원할 때 사용할 수 있다.
Overriding
abstract와 virtual 키워드로 선언된 메서드만 Override 키워드를 사용한 재정의가 가능하며 부모를 바탕으로 자식의 상황에 맞는 메서드를 재정의하여 객체지향에서의 다형성을 Overriding으로 구현 가능
public abstract class Vehicle
{
public abstract void Move();
public virtual void TurnOnEngine()
{
Console.WriteLine();
}
}
public class Car : Vehicle
{
public override void Move()
{
}
public override void TurnOnEngine()
{
}
}
부모의 차량 클래스를 상속 받은 차에서 재정의가 가능한 Move(), TurnOnEngine()을 재정의하였다.
virtual 키워드는 구현은 강제되지 않으나 자식에서 동작이 다를 경우 재정의를 할 수 있도록하는 키워드.
abstract는 부모에서 구현을 할 수 없지만 자식은 구현이 강제되는 특징이 있어 해당 코드의 구조를 알지 못해도 설계된
구조에 맞는 프로그래밍이 가능함
'C# 이론' 카테고리의 다른 글
| Boxing & UnBoxing (0) | 2024.12.18 |
|---|---|
| 객체 지향 프로그래밍이란? with C# (0) | 2024.11.18 |
| C#, array-ArrayList, List (0) | 2024.05.21 |
| 2024.05.21 (화) Try-Catch (0) | 2024.05.21 |