인터페이스란? ----------------------------------------------------------------------------
c# 에서는 기본적으로 다중상속을 지원하지 않는다.
class a {}
cass b {}
class c : a, b {} -> 이런식의 상속은 불가능하다는 것이다.
하지만 인터페이스라는 녀석은 실행가능한 코드를 포함하지 않는 특수한 클래스로서. 마치 c++의 순수가상클래스와 비슷한 역할을 한다.
class Program
{
static void Main(string[] args)
{
SubA _Sub = new SubB();
_Sub.Fun();
}
}
interface InterA -> 인터페이스의 선언부분이다.
{
void Fun(); -> 구현은 없는 선언을 인터페이스의 필드에 포함시킨다.
}
class SubA : InterA -> 인터페이스를 상속한다.
{
public virtual void Fun() -> 이런식으로 가상함수로 정의가 가능하다.
{
Console.WriteLine("zzzzz"); -> 순수가상함수를 상속한 클래스와 비슷하다. 인터페이스에 존재하는 함수의 구현을 포함시켜야 문법적으로 오류가 나지 않는다.
}
}
class SubB : SubA -> 인터페이스를 구현하고 있는 클래스를 상속했다.
{
public override void Fun() -> 당연히 오버라이드도 가능하다.
{
Console.WriteLine("XXXX");
}
}
다중상속은 지원하지 않지만 다중 인터페이스 상속은 지원한다.
interface Inter1
{
}
interface Inter2
{
}
class SubA : Inter1, Inter2
{
}
클래스와 함께 상속시킬 수도 있다.
interface Inter1
{
}
interface Inter2
{
}
class SubB
{
}
class SubA : SubB, Inter1, Inter2 -> 인터페이스는 이렇게 몇개든 상속이 가능하다.
{
}
'게임개발공부 > C#공부' 카테고리의 다른 글
추상 클래스와 인터페이스의 차이란? (0) | 2013.12.29 |
---|---|
추상 클래스 봉인 클래스 (0) | 2013.12.29 |
C#에서 const (0) | 2013.12.29 |
c#에서의 다형성 (0) | 2013.12.27 |
제네릭(generic), 함수, 변수 개념. (0) | 2013.12.27 |