본문 바로가기
C#

상속

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

using static CSharp.Program;

namespace CSharp
{
    //OOP(은닉성/상속성/다형성)
    class Player//부모 클래스 혹은 기반 클래스
    {
        static public int counter;

        public int id;
        public int hp;
        public int attack;

        public Player()
        {
            Console.WriteLine("Player 생성자 호출!");
        }
        public Player(int hp)
        {
            this.hp = hp;
            Console.WriteLine("Player hp 생성자 호출");
        }
        public void Move()
        {
            Console.WriteLine("Move");
        }
        public void Attack()
        {
            Console.WriteLine("Attack");

        }
    }

    class Mage :Player//자식 클래스 혹은 파생 클래스
    {

    }
    class Archer : Player
    {

    }

    class Knight : Player
    {
        public Knight() : base(100)//hp생성자만 호출 그냥 생성자는 부르지 않는다
        {
            Console.WriteLine("Knight 생성자 호출!");
        }
        static public Knight CreateKnight()
        {
            Knight knight = new Knight();
            knight.hp = 100;
            knight.attack = 1;
            return knight;
        }
       

    }
    class Program
    {
        static void Main(string[] args)
        {
            Knight knight = Knight.CreateKnight();
            knight.Move();
            knight.Attack();
        }
    }
}

반응형

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

클래스 형식 변환  (0) 2023.07.05
은닉성  (0) 2023.07.05
static 이란  (0) 2023.07.05
생성자  (0) 2023.07.05
스택과 힙  (0) 2023.07.05