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#
상속
728x90
반응형
반응형