
추상 클래스는 직접적으로 인스턴스를 생성할 수 없는 클래스이다.
추상 클래스는 abstract 키워드를 사용하여 선언되며, 추상 메서드를 포함할 수 있다.
주로 상속을 위한 베이스 클래스로 사용된다.
추상 메서드는 구현부가 없는 메서드로, 자식 클래스에서 반드시 구현되어야 한다.
abstract class Shape
{
public abstract void Draw();
}
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle");
}
}
class Square : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a square");
}
}
class Triangle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a triangle");
}
}
주로 사용되는 방법은 퀘스트처럼 정해진 흐름 또는 포맷을 가지는 시스템에서 가이드라인을 잡아주는 역할을 한다.
퀘스트 수락 -> 퀘스트 진행 -> 퀘스트 완료
라는 흐름을 모든 퀘스트에 강요하면서, 실제 퀘스트의 내용은 각 퀘스트 클래스에 구현을 맡기는 용도로 쓸 수 있겠다.
또한, 팀 프로젝트일 경우에 서로 다른 사람이 퀘스트를 만들 경우 포맷이 달라지지 않고 일정하게 만들어 질 수 있도록 이용할 수 있다. '강제구현'
이번 팀 프로젝트에서 퀘스트 담당 구현이 아니었기 때문에 사용할 일은 없었지만, 시간이 날 때 어떤식으로 사용하면 좋을지 직접 사용해보며 숙지할 필요가 있겠다.