본문 바로가기
Study/C#

[C#][Study][기초다지기] 가상 함수 virtual

by 스테디코디스트 2023. 9. 23.
반응형

가상 함수 - virtual

- 추상 함수와는 달리 상속받은 자식 클래스에서 반드시 재정의 될 필요가 없음

- 해당 가상 함수에만 키워드 virtual이 들어가면 됨

[ex]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Virtual_Methods
{
    class Program
    {
        static void Main(string[] args)
        {
            child1 ch1 = new child1();
            ch1.message();
 
            child2 ch2 = new child2();
            ch2.message();
 
            Console.ReadKey();
        }
    }
}

class baseclass
{
	// virtual 키워드를 이용해 명시
    public virtual void message()
    {
        Console.WriteLine("I am base class Virtual Method");
    }
}

class child1 : baseclass
{
    public override void message()
    {
        Console.WriteLine("I am child 1 class");
    }
}

class child2 : baseclass
{   
	// 반드시 재정의할 필요는 없음 
}