본문 바로가기
C#

다형성

by Mostlove 2023. 7. 5.
728x90
반응형

using static CSharp.Program;

namespace CSharp
{
    //다형성
    class Player
    {
        protected int hp;
        protected int attack;

        public virtual void Move()
        {
            Console.WriteLine("Player 이동!");
        }
    }

    class Knight : Player
    {
        public override void Move()
        {
            base.Move();
            Console.WriteLine("Knight 이동!");
        }
    }
    class Mage : Player
    {
        public int mp;
        public override void Move()
        {
            Console.WriteLine("Mage 이동!");
        }
    }

    class Program
    {
        static void EnterGame(Player player)
        {
            player.Move();
        }
        static void Main(string[] args)
        {
            Knight knight = new Knight();
            Mage mage = new Mage();

            // Mage 타입 -> Player 타입
            // Player 타입 -> Mage타입?
            knight.Move();
            mage.Move();

            EnterGame(mage);
        }
    }
}

반응형

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

TextRPG(객체지향 버전)  (0) 2023.07.06
문자열  (0) 2023.07.05
클래스 형식 변환  (0) 2023.07.05
은닉성  (0) 2023.07.05
상속  (0) 2023.07.05