1. interface (인터페이스)
인터페이스는 일종의 약속입니다.
매서드, 이벤트, 인덱서, 프로퍼티만 가질 수 있습니다.
직접 인스턴스를 가질 수 없지만 인터페이스를 상속받는 클래스에서 생성 가능합니다.
이 때, 상속 받는 클래스에서는 인터페이스에 선언된 모든 매서드 및 프로퍼티를 public 한정자로 구현해야합니다.
클래스 외에도 구조체(struct)와 인터페이스(interface)도 인터페이스를 상속 받을 수 있습니다.
형태>
interface 인터페이스_명
{
반환형식 매서드_명(매개변수_목록);
//...
}
예시>
interface IMessage
{
void SendMessage(string message);
}
인터페이스 상속>
class ConsoleMessage : IMessage
{
public void WriteMessage(string message)
{
Console.WriteLine(message);
}
}
2. abstract (추상)
abstract 키워드로 수식된 클래스를 추상 클래스(abstract class)라고 하며,
마치 인터페이스와 클래스 중간상태로 볼 수 있습니다.
일반적인 클래스와 동일하게 구현 가능하지만,
내부에 추상 매서드(abstract method)를 구현할 수 있습니다.
추상 매서드는 반드시 public, internal, protected 또는 protected internal 중 하나여야 합니다.
추상 매서드는 본문을 구현할 수 없습니다. (이러한 이유로 인터페이스의 특징을 나타냅니다.)
추상 매서드는 해당 추상 클래스를 상속받는 클래스에서 구현할 수 있습니다.
예시>
abstract class AbstractBase
{
public abstract void ConsoleMessage(string message);
}
추상 클래스 상속>
class Derived : AbstractBase
{
public override void ConsoleMessage(string message)
{
Console.WriteLine("message:{0}", message);
}
}
'.NET C# > 문법' 카테고리의 다른 글
public, private, protected, internal 접근 한정자 (0) | 2020.02.15 |
---|