C# 클래스엔 상속이라는 개념이 있습니다.
비슷한 개념의 클래스를 묶는 것을 말합니다.
저희는 보통 상속시키는 클래스를 부모 클래스라 부르고
상속받는 클래스를 자식 클래스라 부릅니다.
public class Monster
{
public int level;
public string name;
public int hp;
public int def;
public int atk;
public Monster()
{
Console.WriteLine("Im respawn!");
}
}
public class Minion : Monster
{
public Minion()
{
}
}
public class VoidInsec : Monster
{
public VoidInsec()
{
}
}
public class CannonMinion : Monster
{
public CannonMinion()
{
}
}
자식클래스로 설정하기 위해서는 부모 클래스의 이름을 자식 클래스의 뒤에 붙여줍니다.
이렇게 되었을 때 자식 클래스는 부모의 변수와 메소드를 공유받게 되며
사용할 때 Minion minion = new Minion(); 처럼 선언해주면 Monster의 실행부 또한 같이 실행됩니다.
다음은 base 키워드 에 관한 이야기입니다. base 키워드는 자식 클래스가 부모 클래스의 멤버에
접근이 가능한 키워드입니다. 자식 클래스의 메소드에 :base 를 붙여주면 권한을 받게됩니다.
public class Monster
{
public int level { get; set; }
public string name { get; set; }
public int hp { get; set; }
public int def { get; set; }
public int atk { get; set; }
//몬스터 정보
public Monster(int level, string name, int hp, int def, int atk)
{
this.level = level;
this.name = name;
this.hp = hp;
this.def = def;
this.atk = atk;
}
}
public class Minion : Monster
{
public Minion() : base(2, "미니언", 15, 10, 5)
{
}
}
위와 같이 부모 클래스인 Monster 와 자식 클래스인 Minion 을 설정하였습니다.
Monster는 변수의 초기값을 따로 지정해주지 않았지만 생성자를 통해 변수를 입력받는 형태입니다.
Minion을 보시면 base의 소괄호에 매개변수가 입력되어 있습니다.
고유의 값을 base의 매개변수로 넣어둔다면 Minion 클래스가 선언될 때 이 매개변수들이 거슬러 올라가
Monster의 생성자가 실행되기전에 생성자의 매개변수로 들어가게 됩니다.
그리고 생성자의 기능에 따라 변수에 Minion의 고유값이 들어가게 됩니다.
public class Minion : Monster
{
public Minion() : base(2, "미니언", 15, 10, 5)
{
}
}
public class VoidInsec : Monster
{
public VoidInsec() : base(3, "공허충", 10, 10, 9)
{
}
}
public class CannonMinion : Monster
{
public CannonMinion() : base(5, "대포미니언", 25, 10, 8)
{
}
}
따라서 자식 클래스를 여럿 두게 된다면 각각 호출될 때마다 고유의 값을 가지고 갈 수 있게 됩니다.
'자료 관리' 카테고리의 다른 글
C# 코딩 스탠다드 (0) | 2024.10.02 |
---|---|
객체와 클래스 (0) | 2024.09.27 |
리스트 구조 (0) | 2024.09.25 |
클래스를 사용하여 리스트에 여러 개의 변수를 넣는 방법 (0) | 2024.09.25 |
컬렉션(C#) (2) | 2024.09.22 |