인터페이스란? ----------------------------------------------------------------------------


  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
Posted by JJOREG