부모 클래스의 메서드를 자식 클래스에서 변경(재정의)하고 싶을 때 virtual과 override 키워드를 사용한다.
public class Parent
{
// virtual 메서드 → 자식 클래스에서 재정의 가능
public virtual void ShowMessage()
{
Console.WriteLine("엄마 말 들어라");
}
}
public class Child : Parent
{
// override → 부모의 ShowMessage() 메서드를 덮어쓰기 (재정의)
public override void ShowMessage()
{
Console.WriteLine("용돈 주면 듣지");
}
}
Parent parent = new Parent();
parent.ShowMessage(); // "엄마 말 들어라"
Child child = new Child();
child.ShowMessage(); // "용돈 주면 듣지"
| 키워드 | 역할 | 사용 위치 |
|---|---|---|
| virtual | 메서드를 재정의 가능하게 만듦 | 부모 클래스 |
| override | 부모의 virtual 메서드를 변경함 | 자식 클래스 |