C#

오버로딩(overloading)과 오버라이딩(overriding)

잼잼재미 2023. 11. 8. 15:58

● 오버로딩(overloading)

 - 동일한 메서드 이름을 가지고 있지만, 매개변수의 개수, 타입 또는 순서가 다른 여러개의 메서드를 정의하는 것

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }
}

Calculator calc = new Calculator();
int result1 = calc.Add(2, 3);         // 5
int result2 = calc.Add(2, 3, 4);      // 9

 

● 오버라이딩(overriding)

 - 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 재정의 하는 것을 의미 (virtual, abstract)

 - 가상 메서드(virtual), 추상 메서드(abstract), override 사용

public class Shape
{
    public virtual void Draw()
    {
        Console.WriteLine("Drawing a shape.");
    }
}

public class Circle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a circle.");
    }
}

public class Rectangle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a rectangle.");
    }
}

Shape shape1 = new Circle();
Shape shape2 = new Rectangle();

shape1.Draw();  // Drawing a circle.
shape2.Draw();  // Drawing a rectangle.

 

'C#' 카테고리의 다른 글

out, ref 키워드  (0) 2023.11.08
제너릭  (0) 2023.11.08
가상 메서드 (Virtual), 추상 메서드(Abstract)  (2) 2023.11.08
프로퍼티 (Property)  (0) 2023.11.08
접근 제한자 (public, private, protected)  (0) 2023.11.08