À̹ø Àå¿¡¼ ¹è¿ï °ÍÀº ÀÎÅÍÆäÀ̽º ¸Þ¼µå¸¦ ¸í½ÃÀû(Ù¥ãÆîÜ)À¸·Î ±¸ÇöÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¸í½ÃÀû ±¸ÇöÀ̶õ ±ÛÀÚ ±×´ë·Î ¼Ò¼ÓÀÌ ¾îµðÀÎÁö¸¦ ºÐ¸íÈ÷ ±¸ºÐÇØ¼ ±¸ÇöÀ» ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¾Õ¿¡¼µµ Àá±ñ ¾ð±ÞÀÌ µÇ±ä Çߴµ¥, ¸¸¾à¿¡ ¼·Î ´Ù¸¥ ÀÎÅÍÆäÀ̽ºµéÀÌ °°Àº À̸§À» °®´Â ¸Þ¼µå¸¦ °®°í Àִµ¥ ÀÌ ÀÎÅÍÆäÀ̽ºµéÀ» µ¿½Ã¿¡ »ó¼Ó ¹Þ¾Æ ±¸ÇöÇÑ´Ù¸é ¾Æ¸¶µµ ÄÄÇ»ÅÍ´Â ³Ã³ÇØ ÇÒ °ÍÀÔ´Ï´Ù. ¿Ö³ÄÇÏ¸é ±× ¸Þ¼µå°¡ È£ÃâµÇ¸é ¾î´À ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µåÀÎÁö¸¦ ¾Ë ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾øÀ¸´Ï±î ¸»ÀÔ´Ï´Ù. ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µå´Â ¸Å°³º¯¼ö·Î Áߺ¹Á¤ÀÇ(Overloading)¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù. ±×·¡¼ »ý°¢ÇØ ³½ °ÍÀÌ µ¿ÀÏÇÑ ¸Þ¼µåÀÇ À̸§ ¾Õ¿¡´Â ÇØ´ç ÀÎÅÍÆäÀ̽º ¸íÀ» ¸í½ÃÇØ¼ ±¸º°ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
¾Æ·¡ÀÇ ¿¹Á¦´Â µÎ °³ÀÇ ÀÎÅÍÆäÀ̽º InterA¿Í InterB°¡ µ¿ÀÏÇÑ À̸§ÀÇ ¸â¹ö¸Þ¼µåÀÎ a() ¸Þ¼µå¸¦ °¡Áö°í ÀÖÀ» ¶§, ±¸Çö Ŭ·¡½º¿¡¼ ¸í½ÃÀûÀ¸·Î ÀÌ ¸Þ¼µåµéÀ» ±¸ÇöÇÏ´Â ¿¹¸¦ º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ¿¹Á¦¸¦ º¸½Ã¸é ´ç¿¬ÇÏ´Ù°í »ý°¢ÇÏ½Ç °Ì´Ï´Ù.
|
& |
ExplicitTestMain.cs |
Ü ¸í½ÃÀû ±¸ÇöÀÇ ¿¹Á¦ |
|
using System; interface InterA { void a(); } interface InterB { void a(); void b(); } class ExplicitTest : InterA, InterB { void InterA.a() { Console.WriteLine( "InterA_a" ); } void InterB.a() { Console.WriteLine( "InterB_a" ); } public void b() { Console.WriteLine( "InterB_b" ); } } public class ExplicitTestMain{ public static void ExplicitTest t = new ExplicitTest(); InterA interface1 = t; interface1.a(); InterB interface2 = t; interface2.a(); interface2.b(); }//main }//class | ||
|
C:\C#Example\05>csc ExplicitTestMain.cs C:\C#Example\05>ExplicitTestMain InterA_a InterB_a InterB_b | ||
¿©±â¼ ´«¿©°Üº¸½Ç °ÍÀº Çѱºµ¥ ¹Û¿¡ ¾ø½À´Ï´Ù. ³ª¸ÓÁö´Â ¾Õ ÀåÀÇ ¿¹Á¦¿Í ¶È°°Àº °ÍÀ̴ϱî¿ä. ¹Ù·Î µ¿ÀÏÇÑ À̸§ÀÇ ¸Þ¼µå¸¦ ±¸ÇöÇÒ ¶§, ¸Þ¼µå¸í ¾Õ¿¡ ÇØ´ç ÀÎÅÍÆäÀ̽ºÀÇ À̸§À» ¸í½ÃÇØ ±¸ÇöÇÑ °ÍÀÔ´Ï´Ù. À̰ÍÀº Ŭ·¡½ºÀÇ »ó¼Ó¿¡¼µµ µ¿ÀÏÇÏ°Ô Àû¿ëµË´Ï´Ù.
n class ExplicitTest : InterA, InterB {
n void InterA.a() {...}
n void InterB.a() {...}
n ...
n }
¸¸¾à ¸Þ¼µå¸¦ ¸í½ÃÀûÀ¸·Î ±¸ÇöÇÏÁö ¾ÊÀ¸¸é, ¾î´À °ÍÀÌ ¾î´À °ÍÀÎÁö ±¸ºÐÇÒ ¼ö ¾ø¾î ÄÄÆÄÀÏ·¯´Â ´ç¿¬È÷ ¾Æ·¡¿Í °°Àº ¿¡·¯¸¦ ³¾ °ÍÀÔ´Ï´Ù.
|
C:\C#Example\05>csc ExplicitTest.cs ExplicitTest.cs(16,7): error CS0111: ¡®ExplicitTest¡¯ Ŭ·¡½º´Â µ¿ÀÏÇÑ ¸Å°³º¯¼ö Çü½ÄÀ» °¡Áø 'a' ¸â¹ö¸¦ ¹Ì¸® Á¤ÀÇÇÕ´Ï´Ù. ExplicitTest.cs(13,7): (ÀÌÀü ¿À·ù¿Í °ü·ÃµÈ ±âÈ£ À§Ä¡) |
±×¸®°í ¸í½ÃÀûÀ¸·Î ±¸ÇöÇÑ ¸Þ¼µå´Â Á¢±ÙÁöÁ¤ÀÚ¸¦ ºÙÀÌÁö ¾Ê½À´Ï´Ù. ¸¸¾à publicÀ» ¸Þ¼µå ¾Õ¿¡ ¼±¾ðÇÏ°Ô µÇ¸é ´ÙÀ½ °°Àº ¿¡·¯¸¦ ¹ß»ýÇÒ °ÍÀÔ´Ï´Ù.
|
C:\C#Example\05>csc ExplicitTest.cs ExplicitTest.cs(13,14): error CS0106: 'public' ÇÑÁ¤ÀÚ´Â ÀÌ Ç׸ñ¿¡ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. |
¿Ö ¿¡·¯°¡ ³¯±î¿ä? ÀÌÀ¯´Â ¸í½ÃÀûÀ¸·Î ±¸ÇöµÈ ¸Þ¼µå´Â ÀÎÅÍÆäÀ̽º¸íÀÌ ¸Þ¼µå ¾Õ¿¡ ºÙ±â ¶§¹®¿¡, ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ ¸Þ¼µåÀÓ¿¡ Ʋ¸²ÀÌ ¾ø½À´Ï´Ù. µû¶ó¼ ÀÎÅÍÆäÀ̽º ¸â¹öÀÇ °æ¿ì¿Í °°ÀÌ ±»ÀÌ publicÀ» ºÙÀÌÁö ¾Ê¾Æµµ ´ç¿¬È÷ publicÀÌ µÇ´Â °ÍÀ̶ó°í »ý°¢ÇÏ¸é °£´ÜÇÕ´Ï´Ù. ÀÎÅÍÆäÀ̽ºÀÇ ¸â¹ö¿¡µµ Á¢±ÙÁöÁ¤ÀÚ¸¦ ºÙÀÏ °æ¿ì¿¡´Â ÄÄÆÄÀÏ ¿¡·¯°¡ ³µ¾úÁö¿ä.
¾à°£Àº º¹ÀâÇÒ °Í°°Àº ÁÖÁ¦¸¦ Çϳª ³¡³Â½À´Ï´Ù. ±×·¯³ª ÀÎÅÍÆäÀ̽º°¡ °´Ã¼ÁöÇâ ¾ð¾î¿¡¼ Â÷ÁöÇÏ´Â ºñÁßÀ» »ý°¢ÇÒ ¶§´Â ¹Ýµå½Ã ¼··ÆÇϰí Áö³ª¾ß¸¸ µÇ´Â ÀåÀÔ´Ï´Ù. ¡®ÀÎÅÍÆäÀ̽º´Â ÀÎÅÍÆäÀ̽º´Ù¡¯¶ó´Â ´À³¦À» °¡Áö½Ç ¶§±îÁö ºÎ´ÜÈ÷ ³ë·ÂÇϽʽÿÀ.
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦5°ÀÇ ÀúÀÚ:ÃÖ¿µ°ü |