반응형
가상 함수 - 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
{
// 반드시 재정의할 필요는 없음
}