가상 메서드

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

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