¾Æ¹öÁöŬ·¡½º·ÎºÎÅÍ »ó¼ÓÀ» ¹Þ¾Ò´Ù¸é ¾Æ¹öÁöŬ·¡½ºÀÇ ¸ðµç °ÍÀº ¾ÆµéŬ·¡½º °ÍÀÌ µË´Ï´Ù. ±×·¡¼ ¾ÆµéŬ·¡½º¿¡¼´Â ¾Æ¹öÁö °Íµµ ³» °ÍÀÌ¿ä, ³» °Íµµ ³» °ÍÀÌ µÇ´Ï this¶ó´Â Ű¿öµå¸¦ »ç¿ëÇØ¼ ¾Æ¹öÁöÀÇ ¸â¹ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð ¾Æ¹öÁöÀÇ publicÀ̳ª protected Á¢±ÙÁöÁ¤ÀÚ¸¦ »ç¿ëÇÏ´Â ¸â¹ö¿¡¸¸ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ³Ê¹«³ª ´ç¿¬ÇÑ »ó¼Ó °³³äÀÔ´Ï´Ù.
¾Æ¹öÁöŬ·¡½º¸¦ »ó¼Ó ¹Þ°í ¾ÆµéŬ·¡½º¿¡¼ ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÑ ÈÄ, ¾ÆµéŬ·¡½º ³»ºÎ¿¡¼ ±× ¸Þ¼µå¸¦ È£ÃâÇÑ´Ù¸é, ¹«Á¶°Ç ¾ÆµéÀÇ ÀçÁ¤ÀÇ ¸Þ¼µå°¡ È£ÃâµË´Ï´Ù. ÀçÁ¤ÀÇ ÀÚü´Â ¾Æ¹öÁöÀÇ ¸Þ¼µå¸¦ ¹«½ÃÇϰí Àֱ⠶§¹®ÀÔ´Ï´Ù. ±×·±µ¥ ¾Æµé ÀÔÀå¿¡¼ º»´Ù¸é ¾ÆµéÀº ÀÚ½ÅÀÇ ÀçÁ¤ÀÇµÈ ¸Þ¼µå¿Í ¾Æ¹öÁöÀÇ ¹«½Ã´çÇÑ ¸Þ¼µå 2°³°¡ Á¸ÀçÇÕ´Ï´Ù. ¾Æµé ÀÔÀå¿¡¼ ¾Æ¹öÁöÀÇ ¸Þ¼µå¸¦ È£Ãâ ÇϰíÀÚ ÇÑ´Ù¸é ¾î¶»°Ô ÇÒ±î¿ä?
base.»óÀ§Å¬·¡½º¸â¹ö
ÀÚ½ÅÀÌ ÀçÁ¤ÀÇÇÑ ¾Æ¹öÁöÀÇ ¸Þ¼µå¸¦ È£ÃâÇÒ ¼ö ÀÖ°Ô ÇÒ ¸¸Å ¾Æ¹öÁö Ŭ·¡½º´Â ³Ê±×·¯¿ï±î¿ä? ¹°·ÐÀÌÁÒ. ¿ì¸®ÀÇ ¾Æ¹öÁöµéó·³. ¹«½Ã´çÇÑ ¾Æ¹öÁö Ŭ·¡½ºÀÇ ¸Þ¼µå¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀÌ ¹Ù·Î base ÂüÁ¶º¯¼ö¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. base´Â this¿Í °°Àº ¿ø¸®·Î µ¿ÀÛ µË´Ï´Ù. ±×·¡¼ base ÀÚü´Â µðÀÚÀΟÀÓ¿¡ ¾Æ¹öÁö¸¦ ÂüÁ¶ÇÏ´Â À¯ÀÏÇÑ ÂüÁ¶º¯¼öÀÔ´Ï´Ù.
|
& |
NewSon.cs |
Ü base.»óÀ§Å¬·¡½º¸â¹ö |
|
using System; public class NewFather { public virtual void OverrideFunc(){ Console.WriteLine("¾Æ¹öÁöÀÇ ÇÔ¼ö"); } } public class NewSon : NewFather { public override void OverrideFunc(){ Console.WriteLine("¾ÆµéÀÇ ÀçÁ¤ÀÇ ÇÔ¼ö"); } public void TestFunc() { base.OverrideFunc();//NewFatherÀÇ ¸Þ¼µå È£Ãâ } public static void NewSon ns = new NewSon(); ns.OverrideFunc(); ns.TestFunc(); } } | ||
|
C:\C#Example\04>csc NewSon.cs C:\C#Example\04>NewSon ¾ÆµéÀÇ ÀçÁ¤ÀÇ ÇÔ¼ö ¾Æ¹öÁöÀÇ ÇÔ¼ö | ||
À§ÀÇ ¿¹Á¦¿¡¼ ¾Æ¹öÁöŬ·¡½ºÀÇ ¸Þ¼µå´Â ¾ÆµéŬ·¡½º¿¡µµ °°Àº À̸§À¸·Î Á¸ÀçÇϱ⠶§¹®¿¡, ¾ÆµéÀÔÀå¿¡¼, Áï, ¾ÆµéÀÇ Å¬·¡½º ³»ºÎ¿¡¼´Â ¾Æ¹öÁöÀÇ ¹«½ÃÇÑ ¸Þ¼µå¸¦ È£ÃâÇÒ ¹æ¹ýÀÌ ¾ø½À´Ï´Ù. ¾ÆµéŬ·¡½º ³»ºÎ¿¡¼ ¾Æ¹öÁöŬ·¡½ºÀÇ ¸Þ¼µå¸¦ »ç¿ëÇÏ°í ½Í´Ù¸é base¶ó´Â Ű¿öµå¸¦ »ç¿ëÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù.
|
Base Ű¿öµå¸¦ »ç¿ëÇÑ ¿¹ |
|
public void TestFunc(){ base.OverrideFunc(); } |
TestFunc() ¸Þ¼µå¿¡¼ base¸¦ ÀÌ¿ëÇÏ¿© ¾Æ¹öÁöÀÇ ¸Þ¼µå¸¦ È£ÃâÇϰí ÀÖ½À´Ï´Ù. ÀÚ½ÅÀÇ ¸Þ¼µå¿Í ¾Æ¹öÁöÀÇ ¸Þ¼µå¸¦ ±¸ºÐÇϱâ À§Çؼ À̰ÍÀ» »ç¿ëÇÏ´Â °ÍÀÌÁö º°´Ù¸¥ °ÍÀº ¾ø½À´Ï´Ù.
»óÀ§Å¬·¡½ºÀÇ »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â base()
»ó¼ÓÀ» ¹Þ¾ÒÀ» °æ¿ì ¾Æ¹öÁöŬ·¡½ºÀÇ »ý¼ºÀÚ°¡ ¸Å°³º¯¼ö¸¦ °¡Áö°í ÀÖ´Ù¸é ¾î¶»°Ô µÉ±î¿ä? Àß »ý°¢ÇØ º¸¸é ¾î·µç ¾Æ¹öÁöŬ·¡½ºÀÇ »ý¼ºÀÚ°¡ È£Ãâ µÈ ÈÄ¿¡ ¾ÆµéÀÇ »ý¼ºÀÚ°¡ È£ÃâµÇ´Â °ÍÀº ´ç¿¬ÇÑ ÀÏÀÔ´Ï´Ù. ±×·¸´Ù¸é ¾ÆµéÀÌ »ó¼ÓÀ» ¹Þ¾ÒÀ» °æ¿ì ¾Æ¹öÁöÀÇ »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö´Â ´©°¡ ³Ö¾î ÁÙ ¼ö ÀÖÀ»±î¿ä? ¾Æ¹öÁöÀÇ »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö¸¦ ³Ö¾îÁÖÁö ¾Ê¾Æµµ ¾Æ¹öÁöÀÇ »ý¼ºÀÚ°¡ È£Ãâ °¡´ÉÇÒ±î¿ä? À̰ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù. ¹«Á¶°ÇÀûÀ¸·Î, Àý´ëÀûÀ¸·Î, »ý¼ºÀÚ¿¡ ¸Å°³º¯¼ö°¡ Á¸ÀçÇÑ´Ù¸é »ý¼ºÀÚÀÇ ¸Å°³º¯¼öÀÇ Çü°ú °³¼ö¸¦ ¸ÂÃß¾î ÁÖ¾î¾ß¸¸ È£Ãâ °¡´ÉÇÕ´Ï´Ù. »ó¼ÓÀ» ¾ÆµéŬ·¡½º°¡ ¹Þ¾Æ ¹ö¸° »óŶó¸é ¾ÆµéÀº ¾Æ¹öÁöÀÇ »ý¼ºÀÚ¿¡°Ô ¸Å°³º¯¼ö¸¦ ³Ö¾îÁÙ Àǹ«°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. À̰ÍÀ» ¹«½ÃÇÑ´Ù¸é ¾ÆµéÀº ¸¸µé¾îÁú ¼ö ¾ø½À´Ï´Ù.
|
& |
BaseSon.cs |
Ü »óÀ§Å¬·¡½ºÀÇ »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â base() |
|
using System; public class BaseFather { private string name; public BaseFather(string name) { this.name = name; Console.WriteLine("BaseSon : {0}", name); } } public class BaseSon : BaseFather { public BaseSon(string str) : base(str) { } public static void BaseSon s = new BaseSon("Base Test Problem"); } } | ||
|
C:\C#Example\04>csc BaseSon.cs C:\C#Example\04>BaseSon BaseSon : Base Test Problem | ||
¾Æ¹öÁöŬ·¡½ºÀÇ »ý¼ºÀÚ°¡ ¸Å°³º¯¼ö¸¦ °¡Áö°í ÀÖ´Ù¸é ¾Æµé ÀÔÀå¿¡¼´Â ¾Æ¹öÁöÀÇ »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö¸¦ ³Ö¾îÁÖ¾î¾ß ÇÒ Àǹ«°¡ ÀÖ½À´Ï´Ù. ÀÌ ¶§ baseŰ¿öµå¸¦ »ç¿ëÇÕ´Ï´Ù. À̰ÍÀº ¾ÆµéÀÌ ¾Æ¹öÁö¸¦ »ó¼Ó ¹Þ¾Ò±â ¶§¹®À̸ç ÀÚµ¿À¸·Î ¾ÆµéÀÌ »ý¼ºµÉ ¶§ ¾Æ¹öÁöÀÇ »ý¼ºÀÚ¸¦ È£ÃâÇϱ⠶§¹®ÀÔ´Ï´Ù.
1 base()
n µðÀÚÀΟÀÓ¿¡ ¾Æ¹öÁö¸¦ ÂüÁ¶ÇÏ´Â À¯ÀÏÇÑ ÂüÁ¶º¯¼öÀÌ´Ù
n ¹«½Ã´çÇÑ ¾Æ¹öÁöŬ·¡½ºÀÇ ¸Þ¼µå¸¦ »ç¿ëÇÏ°í ½ÍÀ» ¶§ »ç¿ëÇÑ´Ù.
n ¾Æ¹öÁö »ý¼ºÀÚ¿¡ ¸Å°³º¯¼ö°¡ Á¸ÀçÇÑ´Ù¸é »ý¼ºÀÚÀÇ ¸Å°³º¯¼öÀÇ Çü°ú °³¼ö¸¦ ¸ÂÃß¾î ÁÖ¾î¾ß¸¸ È£Ãâ °¡´ÉÇÏ´Ù
n ¾Æ¹öÁö »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö ŸÀÔÀÌ ´Þ¶ó È£ÃâÇØ ÁÙ ¼ö ¾øÀ» ¶§ »ç¿ëÇÑ´Ù.
n »ý¼ºÀÚ ³»¿¡¼ ¾Æ¹öÁö »ý¼ºÀÚ¸¦ È£ÃâÇϱâ À§ÇØ »ç¿ëÇÑ´Ù
|
¢Ã base Ű¿öµåÀÇ Á¤¸® |
|
q ÆÄ»ý Ŭ·¡½º »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö°¡ ÀÖ°í ±âº» Ŭ·¡½º »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö°¡ ¾øÀ» ¶§ n base ¾øÀÌ »ç¿ë°¡´É q ÆÄ»ý Ŭ·¡½º »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö°¡ ¾ø°í ±âº» Ŭ·¡½º »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö°¡ ÀÖÀ» ¶§ n base ½áµµ »ç¿ëºÒ°¡ q ÆÄ»ý Ŭ·¡½º »ý¼ºÀÚ ¸Å°³º¯¼ö°¡ ÀÖ°í ±âº» Ŭ·¡½º »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö°¡ ÀÖÀ» ¶§ n base ½á¾ß °¡´É q ±âº» Ŭ·¡½º¿Í ÆÄ»ý Ŭ·¡½º »ý¼ºÀÚ µÑ ´Ù ¸Å°³º¯¼ö°¡ ¾øÀ» ¶§ n base ¾ø¾îµµ °¡´É |
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦4°ÀÇ ÀúÀÚ:ÃÖ¿µ°ü |