본문 바로가기

워크/C# 기본 문법

다형성

C#에서 다형성을 사용하는 예시는 다음과 같습니다:

using System;

namespace PolymorphismExample
{
    class Program
    {
        static void Main(string[] args)
        {
            Animal myAnimal = new Animal();
            Animal myPig = new Pig();
            Animal myDog = new Dog();

            myAnimal.AnimalSound();
            myPig.AnimalSound();
            myDog.AnimalSound();
        }
    }

    class Animal
    {
        public virtual void AnimalSound()
        {
            Console.WriteLine("The animal makes a sound");
        }
    }

    class Pig : Animal
    {
        public override void AnimalSound()
        {
            Console.WriteLine("The pig says: wee wee");
        }
    }

    class Dog : Animal
    {
        public override void AnimalSound()
        {
            Console.WriteLine("The dog says: bow wow");
        }
    }
}

이 예제에서는 Animal이라는 부모 클래스와 Pig, Dog이라는 자식 클래스를 선언하고 사용합니다. Animal 클래스는 AnimalSound라는 메서드를 가지고 있습니다. Pig와 Dog 클래스는 Animal 클래스를 상속받아 AnimalSound 메서드를 재정의(override)합니다.

Main 함수에서는 Animal, Pig, Dog 클래스의 객체를 Animal 클래스 타입의 변수에 할당하고, 각각의 AnimalSound 메서드를 호출합니다. 결과적으로, 각 객체의 타입에 따라 서로 다른 AnimalSound 메서드가 호출됩니다.

이 예제에서 Animal 클래스의 AnimalSound 메서드는 virtual 키워드를 사용하여 선언되어, 자식 클래스에서 재정의될 수 있습니다. Pig와 Dog 클래스는 override 키워드를 사용하여 AnimalSound 메서드를 재정의합니다.

다형성을 사용하면, 하나의 클래스 타입의 변수로 여러 클래스 타입의 객체를 참조할 수 있습니다. 이를 통해 코드의 유연성을 높이고, 코드의 관리와 확장이 용이해집니다.

 

 

 

 

 

 

 

 

'워크 > C# 기본 문법' 카테고리의 다른 글

제네릭  (0) 2023.09.04
인터페이스  (0) 2023.09.04
상속  (0) 2023.09.03
접근 제어자  (0) 2023.09.03
클래스와 객체  (0) 2023.09.03