[C#] 다형성(virtual, override)

자몽이·2025년 11월 4일

C# 문법

목록 보기
7/12
post-thumbnail

다형성에 대해 알아보자.
Interface 글에 키워드를 간략히 정리 해놨지만 이번엔 좀 더 자세한 정리이다.



다형성 (polymorphism)

1. virtual

부모 클래스에서 virtual을 사용해서 함수를 작성하면, 상속받는 자식 클래스에서 함수의 재정의를 허용한다.
즉, 재정의를 하지않으면 부모 클래스의 함수가 실행되고 자식 클래스에서 재정의를 했다면 재정의 된 함수가 실행된다.

class Animal
{
	public virtual void Eat()
    {
    	Console.WriteLine("냠냠");

}

// 기본은 구현하고, 상속을 가능하게 하기 위해 virtual 키워드를 사용.


2. override

override를 사용하여 상속된 속성을 자식 클래스에서 재정의를 할 수 있다.

class Mouse : animal
{
	public override Eat()
    {
    	Console.WriteLine("치즈 냠냠");
    }
}

또한, 부모 함수를 사용하고 싶다면 base 키워드를 사용한다.

public override Eat()
{
	base.Eat();
    Console.WriteLine("치즈 냠냠");    
}

이렇게 사용하면 부모의 Eat()함수도 같이 호출된다.



profile
개발자가 되는 그 날 까지

0개의 댓글