·virtual
상속 받는 클래스에서 virtual에 있는 내용 중 필요한 것만 골라서 구현해주면 된다.
·abstract (추상 클래스)
상속 받는 클래스에서 abstract에 있는 내용을 반드시 구현해주어야한다.
abstract는 추상 클래스다. 추상 클래스에 있는 멤버는 구현할 수 없고 상속받는 곳에서 구현해주어야 한다.
using System;
namespace ConsoleApp1
{
class Program
{
public abstract class Essential
{
public virtual void Breath()
{
Console.WriteLine("숨쉬기");
}
public abstract void Fly();
public abstract void Swim();
}
public class Bird : Essential
{
public override void Fly()
{
Console.WriteLine("날기");
}
public override void Swim()
{
Console.WriteLine("죽음");
}
}
static void Main(string[] args)
{
Bird bird = new Bird();
bird.Breath();
}
}
}
Bird에서 Breath를 구현해주지 않았음에도 자동으로 Essential에 있는 Breath가 구현됐다.
만약 Fly나 Swim을 구현해주지 않을 경우 아래의 오류가 나타나게 된다.
물론 Bird에서 새롭게 Breath를 구현해줄 수도 있다.
public class Bird : Essential
{
public override void Fly()
{
Console.WriteLine("날기");
}
public override void Swim()
{
Console.WriteLine("죽음");
}
public override void Breath()
{
Console.WriteLine("헉헉");
}
}
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/virtual
virtual - C# 참조
virtual(C# 참조) 아티클 04/06/2022 읽는 데 4분 걸림 기여자 14명 이 문서의 내용 --> virtual 키워드는 메서드, 속성, 인덱서 또는 이벤트 선언을 수정하고 파생 클래스에서 재정의하도록 허용하는 데 사
docs.microsoft.com
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/abstract
abstract - C# 참조
abstract(C# 참조) 아티클 04/06/2022 읽는 데 5분 걸림 기여자 16명 이 문서의 내용 --> abstract 한정자는 수정되는 항목에 누락되거나 불완전한 구현이 있음을 나타냅니다. abstract 한정자는 클래스, 메서
docs.microsoft.com
'언어 > C#' 카테고리의 다른 글
[C#] Volatile이란? (0) | 2022.05.26 |
---|---|
[C#] Dictionary란 (0) | 2022.05.02 |
[C#] Queue과 Stack (0) | 2022.05.02 |
[C#] 함수, 클래스, 객체, 인스턴스, 생성자 (0) | 2022.04.25 |
[C#] Generic Type 사용하기 (0) | 2022.04.25 |