더북(TheBook)

가상 메서드

메서드 오버라이드는 다른 표현 방식으로 가상(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 키워드를 붙여 새롭게 다시 만들어 사용할 수 있도록 규칙을 정할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.