44.2 상속 관계에서 메서드 오버라이드
C#에서 override 키워드는 ‘재정의’ 또는 ‘다시 정의’를 의미합니다. 상속 관계에서 메서드를 재정의해서 사용하는 세 가지 방법을 코드로 정리해 보겠습니다.
> public class Parent . { . public void Say() => Console.WriteLine("부모_안녕하세요."); . public void Run() => Console.WriteLine("부모_달리다."); . public virtual void Walk() => Console.WriteLine("부모_걷다."); . } > > public class Child : Parent . { . public void Say() => Console.WriteLine("자식_안녕하세요."); . public new void Run() => Console.WriteLine("자식_달리다."); . public override void Walk() => Console.WriteLine("자식_걷다."); . } > > Child c = new Child(); //메서드 오버라이드: 함수 재정의 > c.Say(); //① 재사용 자식_안녕하세요. > c.Run(); //② x -> new 자식_달리다. > c.Walk(); //③ virtual -> override 자식_걷다.