¼Ò¼³°°ÀºC#  Á¦5°­ÀÇ C#ÀÇ ´ÙÇü¼º  10. ÀÎÅÍÆäÀ̽ºÀÇ Æ¯Â¡  

 

 

5.10 ÀÎÅÍÆäÀ̽ºÀÇ Æ¯Â¡

 

¸â¹öµéÀÌ ¸ðµÎ ÇÁ·ÎÅäŸÀÔ¸¸À» °¡Áö°í ÀÖ´Â ÀÎÅÍÆäÀ̽º´Â ¿©·¯ °¡Áö ÁÖÀǸ¦ ±â¿ï·Á¾ß ÇÏ´Â »çÇ×µéÀÌ ¾ÆÁÖ ¸¹½À´Ï´Ù. ÀϹÝÀûÀÎ ÀÎÅÍÆäÀ̽ºÀÇ »ç¿ë»óÀÇ ¹®Á¦¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

ÀÎÅÍÆäÀ̽ºµé »çÀÌÀÇ »ó¼Ó

ÀÎÅÍÆäÀ̽º³¢¸®´Â »ó¼ÓÀÇ °³³äÀÌ Àû¿ëµË´Ï´Ù. ÀÎÅÍÆäÀ̽º³¢¸® »ó¼ÓÇØ¼­ ´õ Å« ÀÎÅÍÆäÀ̽º¸¦ ¸¸µç´Ù´Â ÀǹÌÀÔ´Ï´Ù. ÀÎÅÍÆäÀ̽ºµé³¢¸®´Â Áߺ¹»ó¼Ó°ú ´ÜÀÏ »ó¼Ó ¶ÇÇÑ °¡´ÉÇÕ´Ï´Ù. ±× ¿¹´Â ´ÙÀ½°ú °°½À´Ï´Ù

 

ÀÎÅÍÆäÀ̽º°¡ »ó¼ÓµÇ¾î È¥ÇÕµÈ ¿¹

interface IA{

           void SayA();

}

interface IB{

           void SayB();

}

interface IC: IB{

            void SayC();

//ÀÎÅÍÆäÀ̽º ´ÜÀÏ »ó¼Ó

}

interface ID: IA, IC {

    //ÀÎÅÍÆäÀ̽ºµéÀÇ Áߺ¹»ó¼Ó

}

 

ÀÎÅÍÆäÀ̽º³¢¸® »ó¼ÓÇÒ ¼ö ÀÖÀ¸¸ç ±×¸®°í ÀÌ ÀÎÅÍÆäÀ̽º°¡ ÀÎÅÍÆäÀ̽º¸¦ »ó¼ÓÇÏ¸é ¶Ç´Ù½Ã ÀÎÅÍÆäÀ̽º°¡ µË´Ï´Ù.

 

¢Ã ÀÎÅÍÆäÀ̽º(Interface)ÀÇ Æ¯Â¡II

q                »ó¼Ó Ç¥½ÃÀÚ(:)¸¦ »ç¿ëÇØ¼­ ÀÎÅÍÆäÀ̽º³¢¸® »ó¼ÓÇϸé ÀÎÅÍÆäÀ̽º°¡ µÈ´Ù.

 

ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çö

ÀÎÅÍÆäÀ̽º´Â ±¸Çö(Implementaton)À» ¸ñÀûÀ¸·Î ÇÕ´Ï´Ù. Áï, ÀÎÅÍÆäÀ̽º°¡ ÇϳªÀÇ Å¬·¡½º°¡ µÇ±â À§Çؼ­´Â ¹Ýµå½Ã ¸ðµç ³»ºÎÀÇ ±¸ÇöµÇÁö ¾ÊÀº ±¸¼º¿ä¼ÒµéÀ» ÀüºÎ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. ¸ðµç ±¸Çö ¿ä¼ÒµéÀ» ±¸ÇöÇÏÁö ¾ÊÀ¸¸é ¿ÏÀüÇÑ Å¬·¡½º·Î½á ÀÌ¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. Áï, ¿Ïº®ÇÏ°Ô ±¸ÇöÀÌ µÇÁö ¾ÊÀº Ŭ·¡½º·Î °´Ã¼¸¦ »ý¼ºÇÏ¸é ¿¡·¯¸¦ ¹ß»ýÇÕ´Ï´Ù.

 

ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çö

interface IA{

         void SayA();

}

interface IB{

         void SayB();

}

interface IC: IB{

         void SayC();

//ÀÎÅÍÆäÀ̽º ´ÜÀÏ »ó¼Ó

}

interface ID: IA, IC {

    //ÀÎÅÍÆäÀ̽ºµéÀÇ Áߺ¹»ó¼Ó

         void SayD();

}

public class ITest : ID { //¸ðµç ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çö

         public void SayA(){  }

         public void SayB(){  }

         public void SayC(){  }

         public void SayD(){  }

}

 

Ŭ·¡½º´Â ´ÜÀÏ »ó¼Ó¸¸À» ÇÏÁö¸¸ ÇϳªÀÇ Å¬·¡½º¸¦ ´ÜÀÏ »ó¼ÓÇÑ ÈÄ ¿©·¯ °³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ µ¿½Ã¿¡ ±¸Çö °¡´ÉÇÕ´Ï´Ù. ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÒ ¶§ »ç¿ëÇϴ Ű¿öµå´Â »ó¼Ó°ú ¸¶Âù°¡Áö·Î ÄÝ·Ð(:)À» »ç¿ëÇÕ´Ï´Ù. Ãß»ó Ŭ·¡½º¿Í ¿©·¯ °³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ µ¿½Ã¿¡ ±¸ÇöÇÏ´Â ¿¹´Â ´ÙÀ½°ú °°½À´Ï´Ù.

 

Ŭ·¡½ºÀÇ »ó¼Ó°ú ÀÎÅÍÆäÀ̽ºµéÀÇ ±¸Çö

interface IA{

         void SayA();

}

interface IB{

         void SayB();

}

abstract class Top {

         public abstract void SayTop();              

}

class TopTest : Top, IA, IB  { //¸ðµç ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çö

         public void SayA(){  }

         public void SayB(){  }

         public override void SayTop(){  }

}

 

ÀÎÅÍÆäÀ̽ºÀÇ ¸í½ÃÀû ±¸Çö

¸¸¾à µÎ°³ÀÇ ÀÎÅÍÆäÀ̽º°¡ °°Àº À̸§ÀÇ ¸Þ¼­µå¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù¸é ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº °æ¿ì¸¦ Çѹø º¸½ÃÁÒ.

 

ÀÎÅÍÆäÀ̽º°¡ »ó¼ÓµÇ¾î È¥ÇÕµÈ ¿¹

interface IAa{

      void Paint();

}

interface IBb{

                       void Paint();

}

interface ICc: IAa, IBb{

                       void IAa.Paint();

                       void IBb.Paint();

}

 

À§ÀÇ ¿¹¿¡¼­ IAa¿Í IBb´Â °°Àº ¸Þ¼­µå¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ·² °æ¿ì¿¡´Â ÀÎÅÍÆäÀ̽ºÀÇ ¸í½ÃÀû ±¸Çö¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù. À§¿Í°°ÀÌ Paint() ¸Þ¼­µåÀÇ ¼Ò¼ÓÀ» Á¤È®ÇÏ°Ô ¹àÇô¾ß È¥µ¿µÇÁö ¾Ê°ÚÁÒ. ÀÌ·¯ÇÑ ¹æ½ÄÀ» ¸í½ÃÀûÀÎ ±¸Çö¹æ¹ýÀ̶ó°í ÇÕ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦5°­ÀÇ
ÀúÀÚ:ÃÖ¿µ°ü