¼Ò¼³°°ÀºC#  Á¦5°­ÀÇ C#ÀÇ ´ÙÇü¼º  11. ÀÎÅÍÆäÀ̽º ³»ÀÇ ¸Þ¼­µå ±¸Çö  

 

5.11 ÀÎÅÍÆäÀ̽º ³»ÀÇ ¸Þ¼­µå ±¸Çö

 

ÀÎÅÍÆäÀ̽º(Interface)´Â ÇÏ´Â ÀÏÀº ¾Æ¹«°Íµµ ¾ø°í ±×Àú »À´ë¸¸ Á¤ÀÇÇØ ³õÀº ¸»ÇÏÀÚ¸é ¡®¼±¾ð ÁýÇÕ¡¯ÀÔ´Ï´Ù. ¿À·ÎÁö ÇÁ·ÎÅäŸÀÔµéÀÇ ¼±¾ð¸¸ÀÌ ÀÖÀ» »ÓÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ¸î °³µç »ó°ü¾øÀÌ ¿©·¯ °³ÀÇ ÀÎÅÍÆäÀ̽º(Interface)¸¦ ÇѲ¨¹ø¿¡ ±¸Çö ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

ÀÎÅÍÆäÀ̽º(Interface)´Â ÀÌ·¸µí, ÀÌ·¯ÀÌ·¯ÇÑ ±â´ÉÀ» °¡Áö°í ÀÖ¾î¾ß Çϸç, ¡®°¢ ±â´ÉÀ» È£ÃâÇÏ·Á¸é ´ÙÀ½°ú °°Àº ¹®¹ýÀ» µû¸£½Ã¿À¡¯ ¶ó´Â ¼±¾ð¿¡ ºÒ°úÇϰí, ½ÇÁ¦·Î ÀÌ ±â´ÉÀ» ±¸ÇöÇÏ´Â °ÍÀº ÀÌ ÀÎÅÍÆäÀ̽º(Interface)¸¦ »ó¼Ó ¹ÞÀº Ŭ·¡½º°¡ ÇÏ´Â °ÍÀÔ´Ï´Ù. À̰ÍÀ» ±¸Çö(Implementation)À̶ó°í ÇÕ´Ï´Ù. ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀ» ¾Ë¾Æ º¸±â À§ÇØ ½ÇÁ¦·Î ÀÎÅÍÆäÀ̽º¸¦ Çϳª ¼±¾ðÇÑ ÈÄ¿¡ ÆÄ»ýŬ·¡½º¿¡ ±¸ÇöÇÏ´Â ´ÙÀ½ÀÇ ¿¹Á¦¸¦ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

&

MyClass.cs

Ü ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿¹Á¦

using System;

interface IMyInterface {

     void IMethod();

}

class MyClass : IMyInterface {

     public void IMethod(){

               Console.WriteLine("ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼­µå¸¦ ±¸Çö");

     }

       public static void Main() {

           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°­ÀÇ
ÀúÀÚ:ÃÖ¿µ°ü