🙇‍♀️상속성

  • 부모 클래스와 자식 클래스
    • 부모 클래스 내의 필드와 함수 모두 물려 받는다

🪐this와 base

  • this
    • class 내의 생성자가 필드의 변수를 사용할때 명시적으로 알려줌
      class Knight : Player
      {
      int c;
          
      public Knight()
      {
          this.c = 10;
      }
      }
      
  • base
    • 부모 클래스의 변수를 사용할 때 알려줌
class Player
{
    public Player(int hp)
    {
        this.hp = hp;
    }
}
class Knight : Player
{
    public Knight() : base(100)
    {
        base.hp = 100;
    }
}

base()만 적었다면 부모 클래스의 생성자중 매게변수가 없는 버전을 물려받음

전체코드

namespace CSharp
{
    class Player
    {
        public int hp;
        public int attack;

        public Player()
        {
            Console.WriteLine("Player 생성자 호출!");
        }

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

    class Knight : Player
    {
        int c;
        public Knight() : base(100)
        {
            this.c = 10;
            base.hp = 100;
            Console.WriteLine("Knight 생성자 호출!");
        }

        static public Knight CreateKnight()
        {
            Knight knight = new Knight();
            knight.hp = 100;
            knight.attack = 10;
            return knight;
        }

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

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

태그:

카테고리:

업데이트: