¸â¹öµéÀÌ ¸ðµÎ ÇÁ·ÎÅäŸÀÔ¸¸À» °¡Áö°í ÀÖ´Â ÀÎÅÍÆäÀ̽º´Â ¿©·¯ °¡Áö ÁÖÀǸ¦ ±â¿ï·Á¾ß ÇÏ´Â »çÇ×µéÀÌ ¾ÆÁÖ ¸¹½À´Ï´Ù. ÀϹÝÀûÀÎ ÀÎÅÍÆäÀ̽ºÀÇ »ç¿ë»óÀÇ ¹®Á¦¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
ÀÎÅÍÆäÀ̽ºµé »çÀÌÀÇ »ó¼Ó
ÀÎÅÍÆäÀ̽º³¢¸®´Â »ó¼ÓÀÇ °³³äÀÌ Àû¿ëµË´Ï´Ù. ÀÎÅÍÆäÀ̽º³¢¸® »ó¼ÓÇØ¼ ´õ Å« ÀÎÅÍÆäÀ̽º¸¦ ¸¸µç´Ù´Â ÀǹÌÀÔ´Ï´Ù. ÀÎÅÍÆäÀ̽ºµé³¢¸®´Â Áߺ¹»ó¼Ó°ú ´ÜÀÏ »ó¼Ó ¶ÇÇÑ °¡´ÉÇÕ´Ï´Ù. ±× ¿¹´Â ´ÙÀ½°ú °°½À´Ï´Ù
|
ÀÎÅÍÆäÀ̽º°¡ »ó¼ÓµÇ¾î È¥ÇÕµÈ ¿¹ |
|
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°ÀÇ ÀúÀÚ:ÃÖ¿µ°ü |