가상 메서드
메서드 오버라이드는 다른 표현 방식으로 가상(virtual) 메서드라고 합니다.
> class Animal //① 부모 클래스 . { . //virtual이 표시된 메서드: 가상 메서드 . public virtual void Eat() => Console.WriteLine("Animal Eat"); . } > > class Cat : Animal //② 자식 클래스 . { . public override void Eat() => Console.WriteLine("Cat Eat"); . } > > Animal animal = new Animal(); //ⓐ 부모 인스턴스 생성 > animal.Eat(); Animal Eat > Animal cat = new Cat(); //ⓑ 자식 인스턴스 생성, 부모 개체에 자식 인스턴스 담기 > cat.Eat(); Cat Eat
부모 클래스의 메서드에 virtual 키워드가 붙으면 자식 클래스에서는 해당 메서드를 그대로 물려받아 사용하거나 override 키워드를 붙여 새롭게 다시 만들어 사용할 수 있도록 규칙을 정할 수 있습니다.