¼Ò¼³°°ÀºÀÚ¹Ù1ºÎ  4Àå. Class for Java  Inheritance¿Í Overriding  

4.5 Inheritance¿Í Overriding

4.5.1 ¸Þ¼­µå ÀçÁ¤ÀǶõ?

 °´Ã¼ÁöÇâ °³³ä¿¡¼­ Overloading¸¸Å­À̳ª Áß¿äÇÏ¸ç »ó¼Ó °³³ä¿¡¼­ »©³õÀ» ¼ö ¾ø´Â °ÍÀÌ  ¹Ù·Î OverridingÀÔ´Ï´Ù. OverridingÀº Áï, ¸Þ¼­µå ÀçÁ¤ÀÇ´Â ¸» ±×´ë·Î ¸Þ¼­µå¸¦ ´Ù½Ã ÀçÁ¤ÀÇÇÏ´Â °ÍÀ» ¸»ÇÕ´Ï´Ù. ¾Æ¹öÁö¸¦ »ó¼Ó ¹ÞÀº ¾ÆµéÀÌ ¾Æ¹öÁöÀÇ ¸Þ¼­µå¿Í ¶È°°Àº ¸Þ¼­µå¸¦ ´Ù½Ã ¸¸µé ¶§ À̸¦ ¾î¶»°Ô ÇØ°áÇÏ´À³ÄÀÇ ¹®Á¦¸¦ ´ã°í ÀÖ½À´Ï´Ù. OverridingÀ» °³ÀÎÀûÀ¸·Î ¾Æ¹öÁö ¹«½ÃÇϱâ·Î ºÎ¸£°í Àִµ¥ ±× ÀÌÀ¯´Â ¾ÆµéÀÌ ¾Æ¹öÁöÀÇ ¸Þ¼­µå¸¦ ÀçÁ¤ÀÇ ÇßÀ» ¶§ ¾Æ¹öÁöÀÇ ¸Þ¼­µå¸¦ ¿ÏÀüÈ÷ ¹«½ÃÇÏ´Â °æÇâÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù. ¸Þ¼­µå ÀçÁ¤ÀÇ¿¡ ´ëÇØ¼­ ÀÚ¼¼ÇÏ°Ô ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

4.5.2 »ó¼Ó°³³ä¿¡¼­ÀÇ Overriding

 ¾Æ¹öÁöŬ·¡½º¸¦ »ó¼Ó ¹Þ¾Æ ¾ÆµéŬ·¡½º¸¦ ¸¸µé¾úÀ» ¶§, ¾Æ¹öÁö°¡ °¡Áö°í ÀÖ´ø ¸Þ¼­µå¸¦ ¾ÆµéŬ·¡½º°¡ ´Ù½Ã ¸¸µé¾ú´Ù°í °¡Á¤ÇØ º¸½Ê½Ã¿À. ¾Æ¹öÁö °ÍÀº ³» °ÍÀÌ°í ³» °Íµµ ³» °ÍÀÌ´Ï ¿Ïº®ÇÏ°Ô ¶È°°Àº À̸§ÀÇ ¸Þ¼­µå°¡ 2°³ Á¸ÀçÇÕ´Ï´Ù. ¾ÆµéŬ·¡½º°¡ °´Ã¼º¯¼ö¸¦ ¸¸µé°í ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÑ´Ù¸é ¾ÆµéŬ·¡½º´Â ¼ø°£ ´çȲÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ¾Æ¹öÁö °ÍÀ» »ç¿ëÇÒ±î? ³» °ÍÀ» »ç¿ëÇÒ±î? ÇÏÁö¸¸ ¾ÆµéŬ·¡½ºÀÇ °´Ã¼´Â À¯À¯È÷ ÀÚ½ÅÀÇ °ÍÀ» »ç¿ëÇÕ´Ï´Ù. ¿Ö³ÄÇϸé, ÀÚ½ÅÀÇ °ÍÀÌ ´õ ¼ÒÁßÇϴϱî¿ä? ¾Æ¹öÁöÀÇ ¸Þ¼­µå´Â ¿ÏÀüÈ÷ ¹«½Ã´çÇÏ´Â °ÍÀÌÁÒ. À̰ÍÀ» ¿ì¸®´Â ¸Þ¼­µå ÀçÁ¤ÀǶó°í ºÎ¸£°í ÀÖ½À´Ï´Ù. °°Àº À̸§ÀÇ ¸Þ¼­µå¸¦ ´Ù½Ã ¸¸µé ¶§ »óÀ§Å¬·¡½ºÀÇ ¸Þ¼­µå´Â ¹«½Ã ´çÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. °³³äÀº ¾ÆÁÖ ½±½À´Ï´Ù. ÇÏÁö¸¸ ¿©±â¼­ ¹ß»ýÇÏ´Â ¾à°£ ³­ÇØÇÑ ¹®Á¦Á¡µéÀÌ ÀÖ½À´Ï´Ù. Á» ÀÌ»óÇϱ⵵ÇÑ ±×·± °³³äÀÌ´Ï ÁÖÀÇÇØ¼­ °üÂûÇØ º¸µµ·Ï ÇϽñ⠹ٶø´Ï´Ù. ¿ì¼±, ¸Þ¼­µå ÀçÁ¤ÀÇÀÇ °¡Àå Ç¥ÁØÀÌ µÇ´Â ¿¹¸¦ ¸¸µé¾î¼­ ¸Þ¼­µå ÀçÁ¤ÀÇÀÇ °³³äºÎÅÍ ÆÄ¾ÇÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

OverrideTest.java(»ó¼Ó¿¡¼­ Override Method¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

class FaFa {

             public void print()             {

                           System.out.println("³­ ÇҾƹöÁö´Ù");

             }

}

class Baby extends FaFa{

              public void print() {

                           System.out.println("³­ ¾Æ¹öÁö´Ù");                

              }

}

public class OverrideTest{

              public static void main(String[] args){     

                           FaFa fafa = new FaFa();

                           fafa.print();

                           Baby baby = new Baby();

                           baby.print();

                           FaFa faba = new Baby();

                           faba.print();

              }

}

C:\examples\4. Class for Basic Java>javac OverrideTest.java

C:\examples\4. Class for Basic Java>java OverrideTest

³­ ÇҾƹöÁö´Ù

³­ ¾Æ¹öÁö´Ù

³­ ¾Æ¹öÁö´Ù

 

À§ÀÇ ¿¹Á¦¿¡¼­ °´Ã¼ 3°³¸¦ »ý¼ºÇϰí ÀÖ½À´Ï´Ù. °´Ã¼ »ý¼º ºÎºÐºÎÅÍ »ìÆì º¸±â·Î ÇϰڽÀ´Ï´Ù.

n         FaFa fafa = new FaFa();

n         Baby baby = new Baby();

n         FaFa faba = new Baby();

 

ù¹øÂ°¿Í ¾ÆÁÖ ½±½À´Ï´Ù. FaFaŬ·¡½º°¡ ÀÚ½ÅÀÇ ¸Þ¸ð¸® ¸¸Å­À» »ý¼ºÇϰí ÀÖ½À´Ï´Ù. fafa°´Ã¼ÀÇ print¸Þ¼­µåÀÇ È£ÃâÀº ´ç¿¬È÷ FaFaŬ·¡½ºÀÇ ¸Þ¼­µå°¡ µÉ °ÍÀÔ´Ï´Ù. µÎ ¹øÂ°ÀÇ °æ¿ì, BabyŬ·¡½º´Â BabyŬ·¡½º¸¸Å­À» »ý¼ºÇϰí ÀÖ½À´Ï´Ù. ±×¸®°í BabyŬ·¡½º´Â baby°´Ã¼¸¦ ¸¸µé¾úÀ¸¸ç Overriding°³³äÀ» Àû¿ë ½ÃŲ´Ù¸é ¾Æ¹öÁöÀÇ print´Â ¹«½ÃµÇ¾îÁö°í ÀÚ½ÅÀÇ print°¡ È£Ã⠵ǾîÁý´Ï´Ù. À̰ÍÀº ÀÌ ÀýÀÇ Á᫐ ÁÖÁ¦ÀÔ´Ï´Ù. ¿©±â¼­ Àá±ñ! Âü°íÀûÀ¸·Î ÇϳªÀÇ ÆÄÀÏ ³»¿¡ µÎ°³ÀÇ Å¬·¡½º°¡ Á¸ÀçÇÒ ¶§ ¸ÞÀÎ ¸Þ¼­µå¸¦ °¡Áö°í Àִ Ŭ·¡½º°¡ ÆÄÀÏÀ̸§ÀÇ ÁÖÀÎÀÌ µË´Ï´Ù. ±×¸®°í publicŬ·¡½º´Â Çϳª¸¸ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

Overriding°³³äÀÌ ³Ê¹« ´Ü¼øÇÏ´Ù´Â °ÍÀÌ ¾à°£ Àǽɽº·´Áö ¾Ê½À´Ï±î? BabyŬ·¡½º°¡ baby°´Ã¼¸¦ ¸¸µé¾úÀ» ¶§ ÀÚ½ÅÀÇ °ÍÀÌ ¿ì¼±ÇÏ´À³Ä ¾Æ¹öÁö °ÍÀÌ ¿ì¼±ÇÏ´À³ÄÀÇ ¹®Á¦¿¡¼­ ÀÚ½ÅÀÇ °ÍÀÌ ¿ì¼±ÇÑ´Ù´Â °ÍÀº ±âÁ¤ »ç½Çó·³ ÀÌÄ¡¿¡ µü µé¾î ¸Â½À´Ï´Ù. ±×·±µ¥ ¼¼ ¹øÂ° °´Ã¼ »ý¼ºÀ» Çѹø º¸½Ã±â ¹Ù¶ø´Ï´Ù. ¾ÆÁÖ È²´ç¹«°è(üØÓÐÙíͦ)ÇÑ ÀÏÀÌ ¹ú¾îÁö°í ÀÖ½À´Ï´Ù. µ¥ÀÌÅÍ Å¸ÀÔÀº ¾Æ¹öÁöÀÇ °ÍÀ» »ç¿ëÇÏ¸ç ¸Þ¸ð¸®´Â ¾Æµé °ÍÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. Á¤¸®ÇØ º¸¸é, ¾Æ¹öÁöÀÇ µ¥ÀÌÅÍ Å¸ÀÔ °´Ã¼º¯¼ö¿¡ ¾ÆµéÀÇ ¸Þ¸ð¸®¸¦ ³Ö´Â Çü½ÄÀÌ µË´Ï´Ù. ¿ì¸®´Â À̰ÍÀ» ¾÷ij½ºÆÃÀ̶ó°í ºÎ¸¨´Ï´Ù. ÀÌ·¸°Ô ¸¸µé¾îÁø ¾ÆµéÀÇ ¸Þ¸ð¸®¸¦ °¡Áø ¾Æ¹öÁöÀÇ µ¥ÀÌÅÍŸÀÔ °´Ã¼º¯¼ö´Â ¾Æ¹öÁöÀÇ Æ¯¼ºÀÌ °­ÇÒ±î¿ä? ¾ÆµéÀÇ Æ¯¼ºÀÌ °­ÇÒ±î¿ä? ¸Þ¼­µå°¡ ÀçÁ¤ÀÇ µÇ¾ú´Ù¸é ¾Æ¹öÁöÀ̸鼭 ¾ÆµéÀÇ ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ¾Æ¹öÁöÀÇ °´Ã¼º¯¼ö·Î print¸¦ È£Ãâ ÇßÀ» ¶§ ¾ÆµéÀÇ ¸Þ¼­µå°¡ È£Ã⠵ǾîÁý´Ï´Ù. ±× À̿ܿ¡´Â ¿Ïº®ÇÏ°Ô ¾Æ¹öÁöÀÇ ¿ªÇÒÀ» ¼öÇàÇÕ´Ï´Ù. ±×·¡¼­ À§ ¿¹Á¦ÀÇ °á°ú´Â ¾Æ¹öÁö °´Ã¼º¯¼ö°¡ ¾ÆµéÀÇ ¸Þ¼­µå¸¦ È£ÃâÇÑ °ÍÀÔ´Ï´Ù. ÀüüÀûÀÎ ±¸Á¶´Â ¾Æ·¡ÀÇ ±×¸²°ú °°½À´Ï´Ù.

¹®Á¦´Â ¡°FaFa faba = new Baby()¡±ÀÌ ¾î¶°ÇÑ ÀåÁ¡ÀÌ Àִ°¡¿¡ ÀÖ½À´Ï´Ù. ¸¹Àº ÀåÁ¡ÀÌ ÀÖ´Ù°í ÇÕ´Ï´Ù. »ç½Ç, ¾öû³­ ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¾÷ij½ºÆÃÀÇ ´À³¦À» °¡Áö°í ÀÖ´Ù¸é ¿©·¯ºÐÀº ´õ ÀÌ»ó ¹è¿ï °ÍÀÌ ¾ø½À´Ï´Ù. ÇÏ»ê(ù»ß£)ÇØµµ µÈ´Ù´Â ¼Ò¸®ÀÔ´Ï´Ù. ¾÷ij½ºÆÃÀº ³Ê¹« µ¢Ä¡°¡ Å©±â ¶§¹®¿¡ ¾ÕÀ¸·Î ³ª¿Ã Àå Áß¿¡¼­ ´Ù½Ã ¼³¸íÀ» Çϵµ·Ï ÇϰڽÀ´Ï´Ù. ¿©±â¼­´Â ÀÌ·¸°Ô Á¤ÀǸ¦ ³»¸®°í °¡°Ú½À´Ï´Ù.

 

n         ¾Æ¹öÁöÀÇ À̸§À¸·Î ¾ÆµéÀÇ ¸Þ¸ð¸®¸¦ ÂüÁ¶ÇÑ´Ù.

n         ¾Æ¹öÁö¶ó ÇÏ´õ¶óµµ ¸Þ¼­µå ÀçÁ¤Àǰ¡ »ç¿ëµÇ¾ú´Ù¸é ¾ÆµéÀÇ ¸Þ¼­µå¸¦ È£ÃâÇÑ´Ù.

n         ¸Þ¼­µå ÀçÁ¤ÀÇ À̿ܿ¡´Â ¿Ïº®ÇÑ ¾Æ¹öÁöÀÇ ¿ªÇÒÀ» ÇÑ´Ù.

 

ÀÌ °³³äÀº ºÐ¸íÇÑ C++ÀÇ °³³äÀÔ´Ï´Ù. Visual C++¿¡¼­µµ ÀÌ °³³äÀ» »©¹ö¸®¸é VC++°¡ ¾Æ´Õ´Ï´Ù. º¸Åë ANSI C++¿¡¼­´Â °¡»ó ¸Þ¼­µå¶ó°í ºÎ¸¨´Ï´Ù. ¹°·Ð Visual C++¿Í C#¿¡¼­µµ ÀÌ virtual ¸Þ¼­µå´Â »ç¿ëµË´Ï´Ù. ÇÏÁö¸¸ ÀÚ¹Ù¿¡¼­´Â Ưº°ÇÑ ¼³¸íÀ» ºÙÀ̰í ÀÖÁö ¾Ê±â ¶§¹®¿¡ ´õ È¥µ¿ µÇ´Â ¿ä¼ÒµéÀÌ ÀÖ½À´Ï´Ù.

 

 

4.5.3 ¸Þ¼­µå ÀçÁ¤ÀÇ¿¡ ´ëÇÑ ´À³¦

¾Æ¹öÁöÀÇ ¸Þ¼­µå¸¦ ¾ÆµéÀÌ ´Ù½Ã ¸¸µé¾ú´Ù¸é À̰ÍÀº ¾ÆµéÀÌ ¾Æ¹öÁöÀÇ Æ¯Â¡À» ´õ¿í ¹ßÀü½ÃŰ°Å³ª ¾Æ´Ï¸é ¾Æµé¸¸ÀÇ Æ¯¼ºÀ» °¡Áø °ÍÀ¸·Î ´Ù½Ã ¸¸µç °ÍÀÔ´Ï´Ù. ´ç¿¬È÷ ¾ÆµéÀº ¾Æ¹öÁöÀÇ °Íº¸´Ù´Â ÀÚ½ÅÀÇ °ÍÀ» »ç¿ëÇÒ °ÍÀÌ´Ù. À̰ÍÀº ¾Æ¹öÁöÀÇ ¸ðµç °ÍÀ» »ó¼ÓÇѴٴ Ư¼öÇÑ ¹æ¹ýÀ» ÅëÇØ¼­ ¾ÆµéÀº ¾Æ¹öÁö °ÍÀ» ¸ðµÎ ¹Þ¾Æ µéÀ̰í ÇÊ¿äÇÑ ºÎºÐ¸¸ °³¼±Çϰڴٴ Àǹ̸¦ ´ã°í ÀÖ½À´Ï´Ù. ¾ÆÁÖ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ÀÚ¹Ù¿¡¼­ ¸Þ¼­µå ÀçÁ¤ÀǸ¦ »©¸é ½Ãü°¡  µÇ¾î¹ö¸± Á¤µµ·Î ¾ÆÁÖ ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ±â¹ýÀÔ´Ï´Ù.

 

 

4.5.4 ¾Æ¹öÁö ¹«½ÃÀÇ ´À³¦

ÇҾƹöÁö, ¾Æ¹öÁö ±×¸®°í ¾Æµé ¸ðµÎ print¸Þ¼­µå¸¦ °¡Áö°í ÀÖ´Ù°í »ý°¢ÇØ º¸ÁÒ. ¾Æ¹öÁö´Â ÇҾƹöÁöÀÇ print¿Í ¾Æ¹öÁöÀÇ printµÎ°³ÀÇ ¸Þ¼­µå¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ¾ÆµéÀº 3°³¸¦ °¡Áö°í ÀÖÁÒ. À̶§ ¾ÆµéÀÇ ÀÔÀå¿¡¼­ ¾î´À°ÍÀ» »ç¿ëÇÒ °ÍÀΰ¡? ¾Æ¹öÁö´Â ÇҾƹöÁöÀÇ print¸¦ ¹«½ÃÇÕ´Ï´Ù. ±×¸®°í ¾ÆµéÀº ´Ù½Ã ¾Æ¹öÁöÀÇ print¸¦ ¹«½ÃÇÏ°Ô µË´Ï´Ù. ¾ÆµéÀº Àüü 3°³ÀÇ print¸¦ °¡Áö°í ÀÖÁö¸¸ ¾Æ¹öÁö ÀÌÀüÀÇ °ÍµéÀº ÅëÀ¸·Î ÇϳªÀÇ Á¶»óÀ¸·Î Ãë±ÞÇϱ⠶§¹®¿¡ print´Â 2°³°¡ ÀÖ´Â °ÍÀÔ´Ï´Ù.

 

n         ÇҾƹöÁöÀÇ print

n         ¾Æ¹öÁöÀÇ print

n         ¾ÆµéÀÇ print

 

¾Æ¹öÁö°¡ ¸ðµç ±× »óÀ§ ·¹º§ÀÇ Á¤º¸¸¦ ´Ù °¡Áö°í Àֱ⠶§¹®¿¡ ¾ÆµéÀº ¾Æ¹öÁö ÀÚü¸¦ ÇϳªÀÇ Á¶»óÀ¸·Î Ãë±ÞÀ» ÇÏ°Ô µË´Ï´Ù. ±× ÀÌÀüÀÇ ¸ðµç Á¤º¸³ª Ư¡µéÀº ¾Æ¹öÁö°¡ ¾Ë¾Æ¼­ ´Ù °¡Áö°í ÀÖ´Â °ÍÀÔ´Ï´Ù. óÀ½ ÀÌ·¯ÇÑ »ó¼Ó°³³äÀ» Á¢ÇÏ°Ô µÇ¸é, ÇҾƹöÁöÀÇ ÇҾƹöÁö´Â ¾î¶»°Ô ó¸®ÇÒ °ÍÀÎÁö ´ç¿¬È÷ ÀǽÉÀÌ °¡°Ô ¸¶·ÃÀÔ´Ï´Ù. ÇÏÁö¸¸ ¾ÆµéÀÇ ÀÔÀå¿¡¼­ ¹Ù¶óº¸¸é ¾Æ¹öÁö°¡ ¸ðµç Á¤º¸¸¦ ´Ù ó¸®Çؼ­ ¾Æ¹öÁö »óÀ§¿¡ ÀÖ´Â Á¶»óµéÀÇ Á¤º¸¸¦ Á¤¸®ÇØ Áֱ⠶§¹®¿¡ ¾ÆµéÀº ¾Æ¹öÁö¸¸À» »ý°¢ÇÏ¸é µË´Ï´Ù. Áï ¾ÆµéÀº ¾Æ¹öÁöÀÇ print¸¸ »ý°¢ÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦·Î´Â 3°³ÀÇ print°¡ Á¸ÀçÇÏÁö¸¸ ¾ÆµéÀÔÀå¿¡¼­´Â print°¡ 2°³ Á¸ÀçÇÏ´Â °ÍÀÌ µÇ¾î ¹ö¸®ÁÒ. ¾Æ¹öÁöÀÇ print¿Í ÀÚ½ÅÀÇ print Áï, ¾Æ¹öÁöÀÇ print¸¦ ¹«½ÃÇÏ´Â °ÍÀÔ´Ï´Ù.

 

¸¸¾à ¾Æ·¡¿Í °°ÀÌ µÈ´Ù¸é, ¾Æ¹öÁöÀÇ print°¡ ¾ø´Ù¸é ¾î¶»°Ô µÉ±î¿ä. Àß »ý°¢ ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.

n         ÇҾƹöÁöÀÇ print

n         ¾Æ¹öÁöÀÇ print°¡ ¾øÀ½

n         ¾ÆµéÀÇ print

 ÀÌ·¯ÇÑ ¾Æ·¡¿Í °°Àº ±¸Á¶·Î ºñ±³ÇÏ¿© ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

 

¾Æ¹öÁö´Â ÇҾƹöÁö¸¦ »ó¼Ó ¹Þ¾Æ ÇҾƹöÁöÀÇ print°¡ ¾Æ¹öÁöÀÇ print°¡ µË´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÇҾƹöÁöÀÇ print¸Þ¼­µå°¡ ¾Æ¹öÁöÀÇ print¸Þ¼­µå°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ±×·¡¼­ ¾Æ¹öÁöÀÇ print¸¦ ¹«½ÃÇÏ°Ô µÇÁö¸¸ ½ÇÁ¦ÀûÀ¸·Î´Â ÇҾƹöÁöÀÇ print¸¦ ¹«½ÃÇÏ´Â °ÍÀÌ µË´Ï´Ù. ±×·¸°Ô ¾î·Á¿î ¸»Àº ¾Æ´Õ´Ï´Ù.

 

 

4.5.5 °á·Ð

»ó¼ÓÀÇ °³³ä¿¡¼­ Àû¿ëµÇ´Â OverridingÀº Ŭ·¡½ºÀÇ Àç»ç¿ëÀ̶ó´Â Ãø¸é¿¡¼­ ¾ÆÁÖ À¯¿ëÇÏ°Ô »ç¿ëµË´Ï´Ù. ¾Æ¹öÁöÀÇ Å¬·¡½ºÀÇ ¿øÇÏ´Â ºÎºÐ¸¸À» °³¼±ÇÏ¿© ´Ù½Ã »ç¿ëÇϰڴٴ ÀǹÌÀÔ´Ï´Ù. Overriding ÀÚüÀÇ °³³äÀº ¾ÆÁÖ ½±°Ô ³Ñ¾î °¥ ¼ö ÀÖ½À´Ï´Ù. ¾ÆÁ÷ ¿Ïº®ÇÏ°Ô ¼³¸íÇÏÁö ¾ÊÀº ¡°¾Æ¹öÁöÀÇ À̸§À¸·Î ¾ÆµéÀ» °¡¸£Å²´Ù¡±¶ó´Â UpcastingÀÇ °³³äÀº Overriding°³³äÀÇ ÃÖ°íºÀÀ̶ó ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Àý¿¡¼­´Â °£´ÜÇÏ°Ô ¡°ÀÌ·¸°Ô ÇÑ´Ù.¡± Á¤µµ¸¸ ¾Ë¾ÆµÎ°í ´Ù½Ã ³ª¿À¸é ±× ¶§ öÀúÇÏ°Ô ºÐÇØ¸¦ ÇØ º¸°Ú½À´Ï´Ù.

±×¸®°í, ¾Æ¹öÁö ¹«½ÃÇϱâ Áï, ¸Þ¼­µå ÀçÁ¤ÀǸ¦ ÇßÀ» ¶§ ¾Æ¹öÁö¸¦ ¿Ïº®ÇÏ°Ô ¹«½ÃÇÑ´Ù¸é ¾Æ¹öÁöÀÇ ¸Þ¼­µå¸¦ »ç¿ëÇÏ°í ½ÍÀ» ¶§´Â ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ¹«½ÃÇØ¹ö·È±â ¶§¹®¿¡ ¾Æ¹öÁöÀÇ ¸Þ¼­µå¸¦ È£ÃâÇÏ°í ½ÍÀ» ¶§ ¹æ¹ýÀÌ ¾ø½À´Ï´Ù. À̰ÍÀÇ ¹æ¹ýÀ» ÀÚ¹Ù¿¡¼­´Â super¶ó´Â ¾Æ¹öÁöÀÇ ÂüÁ¶°ªÀ» µÎ¾î ÇØ°áÇϰí ÀÖ½À´Ï´Ù. ¾ÆµéÀº super¶ó´Â ¾Æ¹öÁöÀÇ ÂüÁ¶°ªÀ¸·Î ¾Æ¹öÁöÀÇ ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÁ¦ thisÀÇ °³³ä°ú superÀÇ °³³ä¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù1ºÎ
ÀúÀÚ:ÃÖ¿µ°ü