본문 바로가기

C# 이론

Overload 와 Overriding

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