Contents
접기
728x90
abstract
- 본문 없음 → 자식이 반드시 구현해야 함
- 자식 클래스에서 override 없으면 컴파일 에러 발생
public abstract class EnemyState {
public abstract void Update(); // 자식이 무조건 구현해야 함
}
virtual
- 기본 구현 있음 → 자식이 원하면 override
- 구현 안 해도 기본 기능 그대로 사용 가능
public abstract class EnemyState {
public virtual void Enter() { Debug.Log("기본 Enter"); }
public abstract void Update(); // 반드시 구현
public virtual void Exit() { Debug.Log("기본 Exit"); }
}
요약
키워드 | 본문 | 자식 구현 필수 여부 |
abstract | 없음 | ✅ 반드시 구현 |
virtual | 있음 | ❌ 선택적 구현 |
> 추상 클래스 안에서는 abstract와 virtual을 섞어서 쓸 수 있다
- 공통 동작 = virtual
- 꼭 구현해야 하는 동작 = abstract
728x90
'C# > 클래스와 구조체' 카테고리의 다른 글
[C#] 추상클래스 (3) | 2025.05.27 |
---|---|
[C#] 오버라이딩 (0) | 2025.04.17 |
[C#] 다형성(Polymorphism) (0) | 2025.04.17 |
[C#] 상속(Inheritance) (0) | 2025.04.17 |
[C#] 프로퍼티 (Property) (0) | 2025.04.17 |