| 1 | Ãß»óŬ·¡½º¶õ? |
|
Ãß»óŬ·¡½º(abstract class)´Â Ãß»óÀûÀΠŬ·¡½º·Î½á ±× ±¸ÇöÀÌ ´ú µÇ¾ú°Å³ª ¶Ç´Â ¾ÆÁ÷Àº ¹Ì¿Ï¼º Ŭ·¡½ºÀ̹ǷΠ½ÇÁ¦ ÀνºÅϽº(¶Ç´Â °´Ã¼)¸¦ »ý¼ºÇÒ ¼ö ¾øµµ·Ï ÇÑ Å¬·¡½ºÀÔ´Ï´Ù. ´Ù½Ã ¸»Çؼ, Ãß»óŬ·¡½º´Â °´Ã¼°¡ °¡Áö´Â Ư¼ºµéÀ» Ãß»óȽÃÄÑ ³õ¾ÒÀ» »Ó ¾ÆÁ÷ ±¸Ã¼È ½ÃŰÁö ¸øÇÑ Å¬·¡½ºÀ̹ǷÎ, ÀÌ Ãß»óŬ·¡½º¸¦ »ó¼ÓÇÏ´Â ÇÏÀ§Å¬·¡½º¿¡¼ Á» ´õ ±¸Ã¼È ½Ã۵µ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. µû¶ó¼, Ãß»óŬ·¡½º¸¦ »óÀ§Å¬·¡½º·Î ÇÏ¿© »ó¼ÓÇÏ´Â ÇÏÀ§Å¬·¡½º´Â Ãß»óŬ·¡½ºÀÎ »óÀ§Å¬·¡½º¿¡¼ ¿ÏÀüÈ÷ ±¸ÇöÇÏÁö ¸øÇÑ ºÎºÐµéÀ» ¿ÏÀüÇÏ°Ô ±¸ÇöÇØ ÁÖ¾î¾ß¸¸ ÇÏÀ§Å¬·¡½º¿¡ ´ëÇÑ °´Ã¼ »ý¼ºÀÌ °¡´ÉÇϰí, ±×·¸Áö ¸øÇÒ °æ¿ì ÇÏÀ§Å¬·¡½º´Â »óÀ§Å¬·¡½ºÀÎ Ãß»óŬ·¡½º¿Í °°ÀÌ ¹Ì¿Ï¼ºÀ̹ǷΠÀÚüÀûÀ¸·Î °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ¾ø°í, ÀÌ ÇÏÀ§Å¬·¡½º´Â ´Ù½Ã Ãß»óŬ·¡½º°¡ µË´Ï´Ù. |
| 2 | Ãß»ó¸Þ¼Òµå´Â Ãß»óŬ·¡½º¿Í ¸¶Âù°¡Áö·Î ¾ÆÁ÷ ±¸ÇöÀÌ ÀÌ·ç¾îÁöÁö ¾Ê°í ´ÜÁö ±× ÇÁ·ÎÅäŸÀÔ¸¸À» °¡Áö°í ÀÖ´Â ¸Þ¼Òµå¸¦ ¸»ÇÕ´Ï´Ù. |
|
Ãß»ó¸Þ¼Òµå´Â ¹Ì¿Ï¼º ¸Þ¼ÒµåÀ̾î¾ß ÇϹǷÎ, ¸Þ¼ÒµåÀÇ ¸öü(body)¸¦ °¡Áú ¼ö ¾ø½À´Ï´Ù. Ãß»ó¸Þ¼Òµå´Â Ŭ·¡½º°¡ °¡Á®¾ß ÇÒ ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ÇÁ·ÎÅäŸÀÔ(¸Þ¼ÒµåÀÇ ÇüÅÂ)À» Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. Ãß»ó¸Þ¼Òµå´Â ÇÏÀ§Å¬·¡½º°¡ °¡Á®¾ß ÇÒ ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÕ´Ï´Ù. Ãß»ó¸Þ¼Òµå¸¦ Æ÷ÇÔÇϴ Ŭ·¡½º´Â ¹Ýµå½Ã Ãß»óŬ·¡½º·Î ¼±¾ðµÇ¾î¾ß ÇÕ´Ï´Ù. Ãß»óŬ·¡½º´Â Ãß»ó¸Þ¼Òµå¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ°í, Ãß»ó¸Þ¼Òµå¸¦ Æ÷ÇÔÇϴ Ŭ·¡½º´Â ¹Ýµå½Ã Ãß»óŬ·¡½º·Î ¼±¾ðµÇ¾î¾ß ÇÕ´Ï´Ù. Ãß»ó¸Þ¼Òµå¸¦ Æ÷ÇÔÇϰí ÀÖ´Â Ãß»óŬ·¡½º¸¦ »ó¼ÓÇÏ´Â ÇÏÀ§Å¬·¡½º´Â Ãß»óŬ·¡½º°¡ °®°í ÀÖ´Â ¸ðµç Ãß»ó¸Þ¼Òµå¸¦ ±¸ÇöÇÏ¿© ÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×·² °æ¿ì, ÇÏÀ§Å¬·¡½º´Â ÇϳªÀÇ Å¬·¡½ºÃ³·³ »ç¿ëÇÒ ¼ö ÀÖ°í, ÀνºÅϽºÀÇ »ý¼ºµµ °¡´ÉÇÏÁö¸¸, Ãß»ó¸Þ¼Òµå¸¦ ¸ðµÎ ±¸ÇöÇØ ÁÖÁö ¸øÇÑ °æ¿ì¿¡´Â ÇÏÀ§Å¬·¡½ºµµ ±¸ÇöÀÌ ¿ÏÀüÈ÷ ÀÌ·ç¾îÁöÁö ¾ÊÀº Ãß»ó¸Þ¼Òµå¸¦ Æ÷ÇÔÇÏ°Ô µÇ¹Ç·Î Ãß»óŬ·¡½º°¡ µÇ¸ç, ÀÌ ¶§ ¹Ýµå½Ã Ãß»óŬ·¡½º·Î ¼±¾ðµÇ¾î¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ» °æ¿ì ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Ãß»ó Ŭ·¡½º(abstract class)¿Í Ãß»ó ¸Þ¼Òµå´Â ÇØ´ç Ŭ·¡½º¿Í ¸Þ¼ÒµåÀÇ ¾Õ¿¡ abstract Ű¿öµå¸¦ »ç¿ëÇÏ¿© ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù. |
| 3 | Ãß»óŬ·¡½ºÀÇ ¼±¾ð¹æ¹ý |
|
abstract class Ŭ·¡½ºÀ̸§ { abstract ¸Þ¼Òµå¼±¾ð; // ¸Þ¼ÒµåÀÇ ¸öü´Â ¾øÀ½ } ¿¹) abstract class AbstractClass { abstract void abstractMethod(); } |
| 4 | Ãß»ó Ŭ·¡½º ¿¹Á¦ |
| ÇÁ·Î±×·¥¼³¸í |
Animal Ŭ·¡½º´Â sound()¿Í who()¶ó´Â abstractÇÔ¼ö¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. ÀÌ µÎ ÇÔ¼ö°¡ ±¸Çö µÇ±âÀü¿¡´Â AnimalÀÇ °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ¾ø´Ù. DogŬ·¡½º´Â Animal¿¡¼ »ó¼ÓÀ» ¹Þ¾Æ sound ÇÔ¼ö¸¸À» ±¸ÇöÇÏ¿´´Ù. ÇÏÁö¸¸ who() abstractÇÔ¼ö¸¦ ±¸ÇöÇϱâÀü¿¡´Â Dog °´Ã¼¸¦ »ý¼ºÇÒ ¼ö¾ø´Ù. BullDogŬ·¡½º´Â who() abstractÇÔ¼ö¸¦ ±¸ÇöÇÏ¿´´Ù. ¸ðµç abstract ÇÔ¼ö°¡ ±¸ÇöÇÏ¿´±â ¶§¹®¿¡ ÀÌ Å¬·¡½º´Â °´Ã¼¸¦ »ý¼ºÇÏ¿© ½ÇÁúÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. HorseŬ·¡½º´Â AnimalÀÇ abstractÇÔ¼ö¸¦ ¸ðµÎ ±¸ÇöÇÏ¿´±â ¶§¹®¿¡ ÀÌ Å¬·¡½º´Â °´Ã¼¸¦ »ý¼ºÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù. |
| class AbstractTest { public static void main(String args[]) { BullDog b = new BullDog(); } |
|
abstract class Animal { public abstract void sound();//¸öü¾øÀ½ public void whoami() |
| abstract class Dog extends Animal { public void sound() { System.out.println("Mung Mung"); } } |
|
class BullDog extends Dog |
|
class Horse extends Animal public void who() public void sound() |
| °á°ú |
I am anima l I am animal , BullDog Mung Mung
I am animal I am Horse Hi hi!!1 hing |