ÀÎÅÍÆäÀ̽º(Interface)´Â ÇÏ´Â ÀÏÀº ¾Æ¹«°Íµµ ¾ø°í ±×Àú »À´ë¸¸ Á¤ÀÇÇØ ³õÀº ¸»ÇÏÀÚ¸é ¡®¼±¾ð ÁýÇÕ¡¯ÀÔ´Ï´Ù. ¿À·ÎÁö ÇÁ·ÎÅäŸÀÔµéÀÇ ¼±¾ð¸¸ÀÌ ÀÖÀ» »ÓÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ¸î °³µç »ó°ü¾øÀÌ ¿©·¯ °³ÀÇ ÀÎÅÍÆäÀ̽º(Interface)¸¦ ÇѲ¨¹ø¿¡ ±¸Çö ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÎÅÍÆäÀ̽º(Interface)´Â ÀÌ·¸µí, ÀÌ·¯ÀÌ·¯ÇÑ ±â´ÉÀ» °¡Áö°í ÀÖ¾î¾ß Çϸç, ¡®°¢ ±â´ÉÀ» È£ÃâÇÏ·Á¸é ´ÙÀ½°ú °°Àº ¹®¹ýÀ» µû¸£½Ã¿À¡¯ ¶ó´Â ¼±¾ð¿¡ ºÒ°úÇϰí, ½ÇÁ¦·Î ÀÌ ±â´ÉÀ» ±¸ÇöÇÏ´Â °ÍÀº ÀÌ ÀÎÅÍÆäÀ̽º(Interface)¸¦ »ó¼Ó ¹ÞÀº Ŭ·¡½º°¡ ÇÏ´Â °ÍÀÔ´Ï´Ù. À̰ÍÀ» ±¸Çö(Implementation)À̶ó°í ÇÕ´Ï´Ù. ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀ» ¾Ë¾Æ º¸±â À§ÇØ ½ÇÁ¦·Î ÀÎÅÍÆäÀ̽º¸¦ Çϳª ¼±¾ðÇÑ ÈÄ¿¡ ÆÄ»ýŬ·¡½º¿¡ ±¸ÇöÇÏ´Â ´ÙÀ½ÀÇ ¿¹Á¦¸¦ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
|
& |
MyClass.cs |
Ü ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿¹Á¦ |
|
using System; interface IMyInterface { void IMethod(); } class MyClass : IMyInterface { public void IMethod(){ Console.WriteLine("ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µå¸¦ ±¸Çö"); } public static void MyClass mc = new MyClass(); IMyInterface imc = mc; imc.IMethod(); }//main }//class | ||
|
C:\C#Example\05>csc MyClass.cs C:\C#Example\05>MyClass ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µå¸¦ ±¸Çö | ||
¸ÕÀú IMyInterface¶ó´Â À̸§ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ¼±¾ðÇÕ´Ï´Ù. ÆÄ»ýŬ·¡½º¿¡¼ ÀÌ ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó ¹Þ¾Æ ±¸ÇöÇØ¾ß ÇÒ ¸Þ¼µå IMethod ¸Þ¼µå¸¦ ¼±¾ðÇØ ÁÝ´Ï´Ù.
n interface IMyInterface {
n void IMethod();
n }
ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϱâ À§ÇØ IMyInterface ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó ¹Þ½À´Ï´Ù. ÇØ´ç ¸Þ¼µåÀÇ ¸öü¸¦ ¸¸µé¾î ÀûÀýÇÏ°Ô ±¸ÇöÀ» ÇÕ´Ï´Ù. À̶§ ÆÄ»ýŬ·¡½º¿¡¼ ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µå¸¦ ±¸ÇöÇÒ ¶§ override Ű¿öµå´Â »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.
n class MyClass : IMyInterface {
n public void IMethod(){
n Console.WriteLine("ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µå¸¦ ±¸Çö");
n }
ÀÎÅÍÆäÀ̽º¿¡ ¼±¾ðµÈ ºÒ¿ÏÀü ¸Þ¼µå´Â MyClass Ŭ·¡½º¿¡¼ ¿ÏÀüÇÏ°Ô ±¸ÇöÀ» ÇÏ¿´´Ù¸é MyClass Ŭ·¡½ºÀÇ °´Ã¼¸¦ ÅëÇØ¼ ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µå¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.
n MyClass mc = new MyClass();
n IMyInterface imc = mc;
n imc.IMethod();
ÀÎÅÍÆäÀ̽ºµµ ÇϳªÀÇ Å¬·¡½ºÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ ÇÏÀ§Å¬·¡½º ÀÔÀå¿¡¼´Â ÀÎÅÍÆäÀ̽º°¡ »óÀ§Å¬·¡½º°¡ µË´Ï´Ù. ¸¸¾à ÀÏ¹Ý Å¬·¡½º¸¦ »ó¼Ó ¹Þ°í µ¿½Ã¿¡ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇß´Ù°í ÇÑ´Ù¸é »óÀ§Å¬·¡½º°¡ µÎ°³ Á¸ÀçÇÏ´Â °ÍÀÔ´Ï´Ù. À§ÀÇ ±¸¹®¿¡¼ MyClass´Â ÀÎÅÍÆäÀ̽º¸¦ »ó¼ÓÇ߱⠶§¹®¿¡ ÀÎÅÍÆäÀ̽º·Î ¾÷ij½ºÆÃ µÉ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦5°ÀÇ ÀúÀÚ:ÃÖ¿µ°ü |