기초 메모지

C# - 오버라이드(Overrid), 오버로딩(Overloading) 본문

Languages/C#

C# - 오버라이드(Overrid), 오버로딩(Overloading)

라큐브 2022. 7. 4. 17:45

오버라이드(Overrid)

- 상위 클래스의 메서드를 재정의 합니다.

- 반환 타입, 메서드명, 시그니처(매계변수) 모두 같아야합니다.

- 오버라이드 당하는 상위 메서드에는 `virtual

- 오버라이드 메서드는 `override`

오버로딩(Overloading)

- 메서드명은 같지만, 시그니처(매계변수) 만 다른 메서드 입니다.

- 반환 타입, 메서드만 같고 시그니처(매계변수)는 달라야합니다.

시그니처(Signature)?

매계변수(Parameter) 타입과 갯수를 의미합니다.

- Add(int x, int y, int z)

 

namespace OverrideOverloading
{
    class Car
    {
        public virtual void Load()
        {
            Console.WriteLine("Load");
        }

        public virtual void Move()
        {
            Console.WriteLine("Move");
        }
    }

    class Ray : Car
    {
        static void Main(string[] args)
        {
            Car cars = new Car();
            Ray ray = new Ray();

            // Override
            cars.Load();
            ray.Load();

            // Overloading
            Add(1234, 5678, 9012);
        }

        override public void Load()
        {
            Console.WriteLine("Ray에 짐을 실어요~");
        }

        override public void Move() 
        {
            Console.WriteLine("Ray는 블루레이 처럼 빨라요~");
        }

        static void Add(int x, int y, int z)
        {
            Console.WriteLine(x + y + z);
        }

        static void Add(int x, int y)
        {
            Console.WriteLine(x + y);
        }

        static void Minus(int x, int y)
        {
            Console.WriteLine(x - y);
        }

        static void Division(int x, int y)
        {
            Console.WriteLine(x / y);
        }

        static void Multiply(int x, int y)
        {
            Console.WriteLine(x * y);
        }
    }
}
반응형
Comments