3-3.ÀÎÅÍÆäÀ̽º

Ãß»ó Ŭ·¡½º

Ãß»ó Ŭ·¡½º´Â Ŭ·¡½º ¼±¾ð¹®¿¡ abstract ÁöÁ¤ÀÚ¸¦ ºÙ¿© ¼±¾ðÇÑ´Ù. ½ÇÁ¦ °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇØ ¼±¾ðÇÑ °ÍÀÌ ¾Æ´Ï¶ó ´Ù¸¥ Ŭ·¡½º¸¦ ÆÄ»ý½ÃÅ°±â À§ÇØ ¼±¾ðÇÏ´Â ÀϹÝÀûÀΠŬ·¡½ºÀÌ´Ù. ³Ê¹« ÀϹÝÀûÀÌ¶ó °´Ã¼¸¦ ±»ÀÌ ¸¸µé¾î ºÁ¾ß ½Ç¿ëÀûÀ¸·Î »ç¿ëÇÒ µ¥°¡ ¾ø±â ¶§¹®¿¡ ¾Æ¿¹ Ãß»óÀ¸·Î ¼±¾ðÇØ ¹ö¸°´Ù.

¶ÇÇÑ Á¤Àû ¸â¹ö¸¸ °¡Áö´Â Ŭ·¡½ºµµ Ãß»óÀ̾î¾ß ÇÑ´Ù. ÀÌ °æ¿ì´Â °´Ã¼¸¦ ¸¸µé ¼ö ¾ø´Â °ÍÀÌ ¾Æ´Ï¶ó ¸¸µé ÇÊ¿ä°¡ ¾ø´Ù. System Ŭ·¡½º³ª Math Ŭ·¡½º°¡ ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù.

Ãß»ó ¸Þ¼­µå´Â ³Ê¹« ÀϹÝÀûÀ̾ µ¿ÀÛÀ» Á¤ÀÇÇÒ ¼ö ¾ø´Â ¸Þ¼­µåÀÌ´Ù. abstract ÁöÁ¤ÀÚ¸¦ ºÙÀÌ°í ;À¸·Î ³¡ÀÌ ³ª¸ç º»Ã¼¸¦ °¡ÁöÁö ¾Ê´Â´Ù. º»Ã¼°¡ ¾øÀ¸¹Ç·Î ¸Þ¼­µåÀÇ µ¿ÀÛÀÌ Á¤ÀǵÇÁö ¾Ê´Â´Ù. C++ÀÇ ´ëÀÀµÇ´Â °³³äÀº ¼ø¼ö °¡»ó ÇÔ¼öÀÌ´Ù.

 

abstract class Dog {

     void SwingTail() {

          System.out.println("»ì¶û»ì¶û");

     }

     abstract void Bark();

}

 

class Jindo extends Dog {

     void Bark() {

          System.out.println("¸Û¸Û");

     }

}

 

class Chihuahua extends Dog {

     void Bark() {

          System.out.println("¿Ð¿Ð");

     }

}

 

class JavaExam {

     public static void main(String args[]) {

          Jindo Jindol = new Jindo();

          Chihuahua Happy = new Chihuahua();

          Jindol.Bark();

          Happy.Bark();

     }

}

 

°³´Â ²¿¸®¸¦ Èçµç´Ù. ¾î¶² °³³ª ²¿¸®¸¦ Èçµå´Â ¹æ½ÄÀº À¯»çÇϹǷΠDog Ŭ·¡½º¿¡ SwingTail ¸Þ¼­µå°¡ Á¤ÀǵǾî ÀÖ´Ù. °³´Â ¶ÇÇÑ Â¢À» ¼ö ÀÖ´Ù. ±×·¯³ª ¾î¶»°Ô ¢´ÂÁö´Â °³ÀÇ Á¾·ù¿¡ µû¶ó ´Ù¸£´Ù. Dog Ŭ·¡½º°¡ ÀϹÝÀûÀÎ °³¸¦ Ç¥ÇöÇϹǷΠ¢´Â µ¿ÀÛÀ» ±¸Ã¼ÀûÀ¸·Î ¹Ì¸® Á¤ÀÇÇÒ ¼ö ¾ø´Ù. ±×·¡¼­ Bark ¸Þ¼­µå´Â Ãß»óÀ¸·Î ¼±¾ðÇßÀ¸¸ç º»Ã¼¸¦ °¡ÁöÁö ¾Ê´Â´Ù.

Ãß»ó ¸Þ¼­µå´Â ¼­ºê Ŭ·¡½º¿¡¼­ ¹Ýµå½Ã ±¸ÇöÇØ¾ß Çϴµ¥ ½´ÆÛ Å¬·¡½ºÀÇ ¸Þ¼­µå¿Í °°Àº À̸§À¸·Î ÀçÁ¤ÀÇÇÏ¸é µÈ´Ù. Dog·ÎºÎÅÍ ÆÄ»ýµÈ Áøµµ°³¿Í Ä¡¿Í¿Í´Â Á» ´õ ±¸Ã¼ÀûÀ̹ǷΠ¢´Â ¼Ò¸®¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. Áøµµ°³´Â ¸Û¸Û ¢°í Ä¡¿Í¿Í´Â ¿Ð¿Ð ¢´Â´Ù.

 

¸Û¸Û

¿Ð¿Ð

 

Ãß»ó ¸Þ¼­µå¸¦ Çϳª¶óµµ °¡Áö´Â Ŭ·¡½º´Â ¹Ýµå½Ã Ãß»ó Ŭ·¡½º·Î ¼±¾ðÇÏ¿© °´Ã¼ »ý¼ºÀ» ±ÝÁöÇØ¾ß ÇÑ´Ù. ¸ðµç ¸Þ¼­µåÀÇ µ¿ÀÛÀÌ ±¸Ã¼ÀûÀ¸·Î Á¤ÀǵÇÁö ¾Ê¾ÒÀ¸¹Ç·Î °´Ã¼¸¦ ¸¸µé¾îµµ Á¤»ó µ¿ÀÛÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù. À§ ¿¹Á¦ÀÇ Dog Ŭ·¡½º´Â Bark°¡ Ãß»ó ¸Þ¼­µåÀ̹ǷΠ¹Ýµå½Ã Ãß»óÀ¸·Î ¼±¾ðÇØ¾ß ÇÑ´Ù.

Ãß»ó Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½º´Â ¹Ýµå½Ã Ãß»ó ¸Þ¼­µå¸¦ ÀçÁ¤ÀÇÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¼­ºê Ŭ·¡½ºµµ ¿ª½Ã Ãß»ó Ŭ·¡½º°¡ µÇ¸ç °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ¾ø´Ù.

ÀÎÅÍÆäÀ̽º

ÀÎÅÍÆäÀ̽º´Â ¸ðµç ¸Þ¼­µå°¡ Ãß»óÀΠŬ·¡½ºÀÌ´Ù. À̸§À» ºÙÀÌÀÚ¸é ¿ÏÀü Ãß»ó Ŭ·¡½º¶ó°í ÇÒ ¼ö ÀÖ´Ù. C++¿¡´Â ÀÎÅÍÆäÀ̽º¿¡ ´ëÀÀµÇ´Â °³³äÀº ¾øÁö¸¸ ¸ðµç ÇÔ¼ö¸¦ ¼ø¼ö °¡»óÀ¸·Î ¼±¾ðÇÔÀ¸·Î½á µ¿ÀÏÇÑ È¿°ú¸¦ ³»´Â Ŭ·¡½º¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

ÀÚ¹Ù¿¡¼­´Â ¿ÏÀü Ãß»ó Ŭ·¡½º¸¦ ÀÎÅÍÆäÀ̽º¶ó´Â Á» ´õ °ø½ÄÀûÀÎ ¹®¹ýÀ¸·Î Áö¿øÇÑ´Ù. ¸Þ¼­µåÀÇ ¼±¾ð¸¸ °¡Áö¸ç ±¸ÇöÀº °¡ÁöÁö ¾Ê´Â´Ù. °´Ã¼¸¦ ¸¸µé ¼ö´Â ¾ø´Ù´Â ¸é¿¡¼­ Ãß»ó Ŭ·¡½º¿Í ÀÎÅÍÆäÀ̽º´Â µ¿ÀÏÇÏÁö¸¸ Àǹ̰¡ ´Ù¸£´Ù. Ãß»ó Ŭ·¡½º´Â Ãß»ó ¸Þ¼­µå¸¦ °¡Á³°Å³ª ¾Æ´Ï¸é abstract ÁöÁ¤ÀÚ¸¦ ºÙ¿© °´Ã¼ »ý¼ºÀ» ±ÝÁöÇÑ °ÍÀÌÁö¸¸ ÀÎÅÍÆäÀ̽º´Â ¸ðµç ¸Þ¼­µå°¡ Ãß»óÀÌ´Ù.

¸Þ¼­µåÀÇ ÁýÇÕ¸¸ Á¤ÀÇÇÏ°í ½ÍÀ» ¶§ ÀÎÅÍÆäÀ̽º¸¦ ¼±¾ðÇÑ´Ù. Ŭ·¡½º ¼±¾ð¹®°ú ºñ½ÁÇÏµÇ Å°¿öµå interface·Î ½ÃÀÛÇϸç { } °ýÈ£¾È¿¡ ¸â¹ö ¸ñ·ÏÀ» ±â¼úÇÑ´Ù. ¸Þ¼­µå´Â º°µµ·Î ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ Ãß»óÀ̹ǷΠabstract ÁöÁ¤ÀÚ´Â »ý·«Çصµ »ó°ü¾øÀ¸¸ç ¾×¼¼½º ÁöÁ¤ÀÚ¸¦ »ý·«Çصµ publicÀÌ ±âº» Àû¿ëµÈ´Ù. ¿ÜºÎ¿¡¼­ È£ÃâÇÒ ¼ö ¾ø´Â ¸Þ¼­µå¸¦ ÀÎÅÍÆäÀ̽º¿¡ Æ÷ÇÔ½Ãų ÀÌÀ¯°¡ ¾ø±â ¶§¹®ÀÌ´Ù. Áï ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼­µå´Â ÁöÁ¤ÀÚ¸¦ »ý·«ÇÏ´õ¶óµµ Ç×»ó abstract publicÀÌ´Ù.

ÀÎÅÍÆäÀ̽º´Â ¸Þ¼­µåÀÇ ¸ñ·Ï¸¸ °¡Áö¹Ç·Î °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ¾ø´Ù. »ó¼ÓÀ» ¹Þ´Â Ŭ·¡½º°¡ ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼­µå¸¦ ±¸ÇöÇØ¾ß ÇÑ´Ù. ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÒ ¶§´Â Ŭ·¡½º ¼±¾ð¹®¿¡ implements ±¸¹®À» ¾²°í ±¸ÇöÇÒ ÀÎÅÍÆäÀ̽º À̸§À» ÁöÁ¤ÇÑ´Ù. ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ »ó¼Ó¹ÞÀº ¸Þ¼­µå´Â ¹Ýµå½Ã publicÀ̾î¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ¼­ºê Ŭ·¡½º°¡ ½´ÆÛ Å¬·¡½ºÀÇ ¸Þ¼­µå¸¦ ÀçÁ¤ÀÇÇÒ ¶§ ¾×¼¼½º ÁöÁ¤ÀÚ´Â °°°Å³ª ´õ ³Ð¾îÁ®¾ß Çϱ⠶§¹®ÀÌ´Ù.

 

interface Animal {

     void Eat();

     void Sleep();

}

 

class Cow implements Animal {

     public void Eat() {

          System.out.println("¿ì°Æ¿ì°Æ");

     }

     public void Sleep() {

          System.out.println("ÄðÄð");

     }

}

 

class JavaExam {

     public static void main(String args[]) {

          Cow So = new Cow();

          So.Eat();

          So.Sleep();

     }

}

 

µ¿¹°Àº ¸ÔÀ» ¼ö ÀÖ°í ÀáÀ» ÀÜ´Ù. ÇÏÁö¸¸ ¾î¶»°Ô ¸Ô°í ¾î¶»°Ô ÀÚ´ÂÁö´Â µ¿¹°¸¶´Ù ´Ù¸£´Ù. ÀÌ µÎ µ¿ÀÛÀ» Animal ÀÎÅÍÆäÀ̽º·Î ¼±¾ðÇß´Ù. AnimalÀº ±× ÀÚü·Î °´Ã¼¸¦ »ý¼ºÇÒ ¼ö´Â ¾øÁö¸¸ µ¿¹°ÀÌ µÇ±â À§ÇÑ ÃÖ¼ÒÇÑÀÇ ¿ä°ÇµéÀ» ¸í½ÃÇÑ´Ù.

¸ðµç µ¿¹° Ŭ·¡½ºµéÀº Animal ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÑ´Ù. Áï, AnimalÀÌ ¼±¾ðÇÑ Eat¿Í Sleep ¸Þ¼­µå¸¦ ±¸Ã¼ÀûÀ¸·Î Á¤ÀÇÇؾ߸¸ ¿ÂÀüÇÑ µ¿¹°ÀÌ µÉ ¼ö ÀÖ´Ù Cow´Â Animal ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ »ó¼ÓÀ» ¹Þ¾Æ ¸Ô´Â µ¿ÀÛ°ú ÀÚ´Â µ¿ÀÛÀ» ±¸ÇöÇßÀ¸¹Ç·Î °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.

 

¿ì°Æ¿ì°Æ

ÄðÄð

 

ÀÎÅÍÆäÀ̽º´Â ´ÙÁß »ó¼Ó °¡´ÉÇÏ´Ù. Áï, ¿©·¯ °³ÀÇ ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ »ó¼ÓÀ» ¹ÞÀ» ¼ö ÀÖ´Ù. ¹Ý¸é ½´ÆÛ Å¬·¡½º´Â ´Ü Çϳª¸¸ °¡´ÉÇÏ´Ù. Ŭ·¡½º¿Í ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ µ¿½Ã¿¡ »ó¼ÓÀ» ¹ÞÀ» ¶§´Â extends¹®ÀÌ ¸ÕÀú ¿À°í µÚ¿¡ implements¹®ÀÌ ¿Í¾ß ÇÑ´Ù. »ó¼Ó¹®ÀÇ ¿ÏÀüÇÑ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

 

class À̸§ extends ½´ÆÛ implements ÀÎÅÍÆäÀ̽º1, ÀÎÅÍÆäÀ̽º2,.... { }

 

»ó¼Ó¹Þ°íÀÚ ÇÏ´Â ¸ðµç ÀÎÅÍÆäÀ̽ºÀÇ À̸§À» implements ±¸¹® ´ÙÀ½¿¡ ÄÞ¸¶·Î ±¸ºÐÇؼ­ Á× ³ª¿­ÇÏ¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â ½´ÆÛ Å¬·¡½º¿Í ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ µ¿½Ã¿¡ »ó¼ÓÀ» ¹Þ´Â´Ù. ´Ù¸¥ ÀÎÅÍÆäÀ̽ºµµ ¾ó¸¶µçÁö ´õ »ó¼Ó¹ÞÀ» ¼ö ÀÖ´Ù.

 

abstract class Dog {

     void SwingTail() {

          System.out.println("»ì¶û»ì¶û");

     }

     abstract void Bark();

}

 

interface Animal {

     void Eat();

     void Sleep();

}

 

class Chihuahua extends Dog implements Animal {

     void Bark() {

          System.out.println("¿Ð¿Ð");

     }

     public void Eat() {

          System.out.println("³È³È³È³È");

     }

     public void Sleep() {

          System.out.println("½Ø±Ù½Ø±Ù");

     }

}

 

class JavaExam {

     public static void main(String args[]) {

          Chihuahua Happy = new Chihuahua();

          Happy.SwingTail();

          Happy.Bark();

          Happy.Eat();

          Happy.Sleep();

     }

}

 

Ä¡¿Í¿Í´Â ÀÏ´Ü µ¿¹°ÀÌ´Ù. ±×·¡¼­ Animal ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó¹Þ¾Æ Eat¿Í SleepÀ» ±¸ÇöÇß´Ù. ¶ÇÇÑ Ä¡¿Í¿Í´Â °³ÀÇ ÀÏÁ¾ÀÌ´Ù. ±×·¡¼­ Dog Ŭ·¡½º·ÎºÎÅÍ SwingTail ¸Þ¼­µå¸¦ ¹°·Á¹Þ°í Bark Ãß»ó ¸Þ¼­µå¸¦ ±¸ÇöÇß´Ù. ÀÌ Ä¡¿Í¿Í´Â ¸Ô±âµµ ÇÏ°í Àڱ⵵ ÇÏ¸ç ²¿¸®¸¦ Èçµé ¼öµµ ÀÖ°í ¢±âµµ ÇÑ´Ù.

 

»ì¶û»ì¶û

¿Ð¿Ð

³È³È³È³È

½Ø±Ù½Ø±Ù

 

ÀÎÅÍÆäÀ̽º³¢¸®µµ »ó¼Ó °¡´ÉÇÏ´Ù. À̶§´Â ÀÎÅÍÆäÀ̽º ¼±¾ð¹®¿¡ extends ¹®À» »ç¿ëÇÑ´Ù. ¼­ºê ÀÎÅÍÆäÀ̽º°¡ ½´ÆÛ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î implements°¡ ¾Æ´Ñ extendsÀÌ´Ù.

ÀÎÅÍÆäÀ̽º´Â ±¸ÇöÀ» °¡ÁöÁö ¾ÊÀ¸¸ç °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ¾øÁö¸¸ ÀÎÅÍÆäÀ̽º ŸÀÔÀÇ º¯¼ö¸¦ ¼±¾ðÇÏ´Â °ÍÀº °¡´ÉÇÏ´Ù. ºñ·Ï ÀÚ½ÅÀÇ °´Ã¼´Â »ý¼ºÇÒ ¼ö ¾øÁö¸¸ ÀÚ½ÅÀ» ±¸ÇöÇÑ ÀÚ½ÄÀÇ °´Ã¼¸¦ °¡¸®Å³ ¼ö´Â ÀÖ´Ù.

 

Animal Ddaeng7 = new Chihuahua();

Ddaeng7.Eat();

Ddaeng7.Sleep();

 

Animal ŸÀÔÀÇ ¶¯Ä¥ÀÌ º¯¼ö¸¦ ¼±¾ðÇØ ³õ°í Ä¡¿Í¿Í °´Ã¼¸¦ ´ëÀÔ¹Þ¾Ò´Ù. ºÎ¸ð´Â ÀÚ½ÄÀ» °¡¸®Å³ ¼ö ÀÖÀ¸¹Ç·Î ÀÌ ´ëÀÔÀº ÇÕ¹ýÀûÀÌ´Ù. ¶¯Ä¥ÀÌ´Â ¸ÔÀ» ¼ö ÀÖ°í Àڱ⵵ ÇÑ´Ù. ±×·¯³ª ¶¯Ä¥ÀÌ°¡ Animal ŸÀÔÀ̹ǷΠÀÌ µÎ µ¿ÀÛ¸¸ °¡´ÉÇϸç Bark³ª SwingTailÀ» È£ÃâÇÒ ¼ö´Â ¾ø´Ù.

ÀÎÅÍÆäÀ̽º´Â ¸Þ¼­µå¸¸ °¡Áú ¼ö ÀÖÀ¸¸ç Çʵå´Â °¡ÁöÁö ¸øÇÑ´Ù. °´Ã¼¸¦ »ý¼ºÇÏÁö ¸øÇϹǷΠÇʵ尡 ÇÒ´çµÇÁöµµ ¾Ê´Â´Ù. ´Ü, »ó¼ö Çʵå´Â °¡Áú ¼ö ÀÖ´Ù. ÀÎÅÍÆäÀ̽º¿¡ Æ÷ÇԵǴ Çʵå´Â Ç×»ó »ó¼öÀÌ¸ç ¶ÇÇÑ Á¤ÀûÀÌ´Ù. ±×·¡¼­ final static Å°¿öµå¸¦ ÀϺη¯ ºÙÀÌÁö ¾Ê¾Æµµ ÀÚµ¿À¸·Î Àû¿ëµÈ´Ù.

ÀÚ¹Ù´Â C++¿¡ ºñÇØ ´ÙÁß »ó¼ÓÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ´ÙÁß »ó¼ÓÀº ¾ÆÁÖ °ñÄ¡ ¾ÆÇ ¹®Á¦¸¦ ¸¹ÀÌ ÀÏÀ¸Å°±â ¶§¹®¿¡ ¾ÖÃÊ¿¡ ÀÚ¹Ù ½ºÆå¿¡¼­ Á¦¿ÜµÇ¾ú´Ù. ±×·¯³ª ²À ºñ±³¸¦ ÇÏÀÚ¸é C++¿¡ ºñÇØ ±â´ÉÀÌ ¶³¾îÁö´Â ¼ÀÀε¥ ÀÌ·± ´ÜÁ¡À» ÀÎÅÍÆäÀ̽º·Î ¸ÚÁö°Ô ¸¸È¸ÇÏ°í ÀÖ´Ù. ÀÎÅÍÆäÀ̽º´Â ´ÙÁß »ó¼ÓÀ» Çصµ ±¸Çö »ó¼Ó¿¡ ºñÇØ ¹®Á¦°¡ °ÅÀÇ ¾ø´Ù.