SIÇÁ·ÎÁ§Æ® ½Ç¹«°æÇè¹ÙÅÁ Àü¹®ÀÚ¹Ù°³¹ßÀÚ°øµ¿Ã¼    
    WASÀü¹®±â¼ú/½Ã½ºÅÛÀå¾ÖÁø´Ü/¼º´ÉÀÌ·Ð/ÄÁ¼³ÆÃ
¾ÆÀ̵ð: 
ºñ¹Ð¹øÈ£: 
[ȸ¿ø°¡ÀÔ]
¡ß Java API Tips
--------------------
- Programming Tips
- JDC Tech Tips

- Servlet/JSP
- J2EE/EJB
- XML/SOAP/UDDI/WSDL
- Jakarta POI
- JDBC
- Mobile Java
- Applet,Swing,SWT
- CORBA
- RMI
- JavaMail
- HTML/HTC/css/js
- Web ÀϹÝ

- ¼­ºí·¿¿£Áø @
(JServ,Tomcat,JRun,..)
Áú¹®Àº [¹¯°í´äÇϱâ]¶õ¿¡¸¸ ¿Ã·ÁÁÖ¼¼¿ä








ÃÖ±Ù¿¡ Å͵æÇÑ »õ·Î¿î °ÍÀÌ ÀÖ³ª¿ä? ¸Ó¸® ¼Ó¿¡ ³Ö¾î µÎ¸é ±Ý¹æ Àؾî¹ö¸®ÁÒ? ÀÛÀº °ÍÀÌ¶óµµ ±¦ÂúÀ¸´Ï À̰÷¿¡ ¿Ã·Á³õ°í ³²µé°ú °øÀ¯ÇϽÃÁö¿ä.. ¿Ã¸±¸¸ÇÑ ¸Þ´º°¡ ¾ø´Ù±¸¿ä? ¸¸µé¾î µå¸±²²¿ä.


[ÃÖ±Ù ¿Ã¶ó¿Â ±Ûº¸±â] °Ë»ö¾î:
 JavaResource | API Tips | Open Source | APM | ApplicationServer | Unix/DB/JVM/Etc | Q&A/Help
¡ß Java Resources
--------------------
- °øÁö»çÇ×
- ÃÖ±Ù IT ¼Ò½Ä
- ¼¼¹Ì³ª¼Ò½Ä
- À̺¥Æ® & ÇÁ·Î¸ð¼Ç

- Ãßõ¹®¼­(2006)
- Ãßõ¹®¼­(2003-2005)
- Ãßõ¹®¼­(±¸)

- °ü·Ã »çÀÌÆ®

- ¹¯°í´äÇϱâ @
- ¹¯°í´äÇϱâ-BACKUP @
- ±â¼ú Åä·ÐÀå @
- ÀÏ¹Ý Åä·ÐÀå @
- »çȸ Åä·ÐÀå @


- ÇÁ·ÎÁ§Æ®½Ç¹«ÄÁ¼³ÆÃ@

- ±³À°/°­ÀÇ/°­ÁÂ
- ÇÁ·ÎÁ§Æ®/¼Ö·ç¼ÇÁ¦¾È
- ä¿ë°ø°í/°³¹ßÀÚ±¸ÀÎ
- ±¸Á÷¶õ

- Àǰ߳ª´®ÅÍ/Àâ´ã

- ÀÚ¹Ù¼­ºñ½º³ÝÀº...
¡ß Java API Tips
--------------------
- Programming Tips
- JDC Tech Tips

- Servlet/JSP
- J2EE/EJB
- XML/SOAP/UDDI/WSDL
- Jakarta POI
- JDBC
- Mobile Java
- Applet,Swing,SWT
- CORBA
- RMI
- JavaMail
- HTML/HTC/css/js
- Web ÀϹÝ

- ¼­ºí·¿¿£Áø @
(JServ,Tomcat,JRun,..)
¡ß Open Source
----------------------
- Eclipse/Plugin
- Apache Struts
- JDF Framework
  - Download / API

- Open Source Q&A
* ¿ÀǼҽº °Ô½ÃÆÇ
  ½Åû¹Þ¾Æ¿ä.
¡ß APM
----------------------
- Performance Forum
- Jennifer
  - Consulting Doc.
  - »ç¿ëÈıâ/±â´ÉÃß°¡¿äû
  - Jennifer FAQ
  - Jennifer Q&A
  - Jennifer Download
- CA/Wily
- Mercury Topaz/J2EE Diag.
- Symantec i3
- Borland Optimizeit
- Compuware Vantage
¡ßApplicationServer
-------------------- 
- ¾îÇø®ÄÉÀ̼Ǽ­¹ö

- ATG Dynamo
- BEA WebLogic
- BolandEnterpriseServer
- Evermind Orion Server
- Fujitsu Interstage
- GemStone's GemStone/J
- HP Netaction
- IBM WebSphere
- IONA iPortal
- InfronTech WebTide
- Macromedia JRun
- Marc Fleury's JBoss
- Oracle 9iAS/OAS/OSDK
- Persistence PowerTier
- SilverStream eXtend
- Sun/Netscape iPlanet
- Sybase EAServer
- TmaxSoft JEUS

- ¼­ºí·¿¿£Áø
(JServ,Tomcat,Resin,..)

- eclipse/Plugin
- Other IDE Tools
¡ßUnix/DB/JVM/Etc
--------------
- Unix/Network
- Hacking/Cracking

- DataBase
- JDBC @

- JVM/JDK Issue
- ±âŸ ÀÚ·á½Ç
¡ß Q&A/Help
--------------------
- ¹¯°í´äÇϱâ
- ¹¯°í´äÇϱâ-BACKUP
- Åä·ÐÀå
- ÇÁ·ÎÁ§Æ®½Ç¹«ÄÁ¼³ÆÃ
- Framework Q&A @
- Jennifer Q&A @

- °Ô½ÃÆÇ »ç¿ë¹ý
- ÀÚ¹Ù¼­ºñ½º³ÝÀº... @
General Java Programming Tips
  [±Û¸ñ·Ï /½Ã°£¼ø] [´ä±Û¾²±â] [ÇÁ¸°Æ®]   
Á¦¸ñ : ±âº»±â ÀÍÈ÷±â - ImplementsÀÇ ¼Ó¶æ.
±Û¾´ÀÌ: ¹ÚÀçÁø(pjj78) 2001/04/18 23:55:05 Á¶È¸¼ö:2203 ÁÙ¼ö:164


¿ì¼± Á¦°¡ ÀÌ ±ÛÀ» ¾²°Ô µÈ ÀÌÀ¯´Â Àý´ë·Î Àß³­Ã´À» ÇÏÀÚ°í Çϴ°ÍÀÌ ¾Æ´Õ´Ï´Ù.

±×·±°ÍÀÌ ¾Æ´Ï¶ó ¸¹Àº ºÐµéÀÌ ¾ÆÁÖ Áß¿äÇÑ Á¡Àε¥µµ ºÒ±¸ÇÏ°í ±×³É Áö³ªÄ¡½Ã°Å³ª ȤÀº
À߸øµÈ Áö½ÄÀ» »ç½ÇÀÎ°Í ¸¶³É ¾Ë°í °è½Å°ÍÀÌ ¾ÈŸ±î¿ö¼­ ÀÔ´Ï´Ù.

±¹³»¿¡ ¸¹Àº ºÐµéÀÌ SCJP, SCJD ÀÚ°ÝÁõ¿¡ µµÀüÇϽðųª °¡Áö°í °è½ÃÁö¸¸ ÀÌ·¯ÇÑ ±âÃÊÀûÀÎ
Â÷ÀÌÁ¡À» ÀÌÇØÇÏÁö ¸øÇÏ¿© ½ÃÇè¿¡ ¶³¾îÁö°Å³ª ȤÀº º¸´Ù ´õ ÁÁÀº ±¸Á¶¸¦ ¼³°èÇϴµ¥¿¡ 
¾î·Á¿òÀ» °¡Áö°í ÀÖÀ½À» Àú´Â ¿©·¯¹ø º¸¾Æ ¿ÔÀ¸¸ç, Àúµµ ¿ª½Ã ±×·¯ÇÏ¿´½À´Ï´Ù.

°õ°õÈ÷ ±× ÀÌÀ¯°¡ ¹ºÁö »ìÆìº» °á°ú ³»¸± ¼ö ÀÖ´Â °á·ÐÀº ÇÁ·Î±×·¡¸Ó·Î½á °¡Á®¾ßÇÒ 
±âÃÊÀûÀÎ ÀÌ·ÐÀ» ¹ÙÅÁÀ¸·Î ÇÏ¿© ÀÚ½ÅÀÇ ½Ç·ÂÀ» ½×´Â°ÍÀÌ ¾Æ´Ï¶ó ±¹³»ÀÇ ¸¹Àº ÇÁ·Î±×·¡¸Ó
ºÐµéÀÌ ÀÌ·ÐÀº ¹«½ÃÇÑü, Å×Å©´ÐÀ̳ª ´Ü¼ø Ȱ¿ë¹ý¿¡¸¸ ÀÇÁ¸ÇÏ¸ç ¸¶Ä¡ ±×°ÍÀÌ ´ë´ÜÇÑ 
½Ç·ÂÀξç ÀÚ¶ûÀ» Çϴ°ÍÀÌ ¹®Á¦¶ó°í »ý°¢ÇÏ¿´½À´Ï´Ù.

±×·¡¼­ º¸´Ù ¸¹Àº ºÐµéÀÌ Á»´õ ü°èÀûÀÎ ÀÌ·ÐÀ» ¹è¿ì½Ã±â À§Çؼ­ Á¦°¡ °¡Áö°í ÀÖ´Â
¸î°¡Áö Áö½ÄµéÀ» Àû¾îº¸°íÀÚ ÇÕ´Ï´Ù.

¾ÆÁÖ ¹Ø¹ÙÅÁ ºÎÅÍ ¿Ã¶ó¿Ã ¼ö´Â ¾ø±â ¶§¹®¿¡ ¾î´ÀÁ¤µµ Áß°£¼öÁØ¿¡¼­ ¼³¸íÀ» Çϵµ·Ï 
ÇϰڽÀ´Ï´Ù.

"À̷а°Àº°Í ÇÊ¿ä¾ø¾î.. ±â³É Â¥¸é µÇ´Â°ÅÁö.." ¶ó°í »ý°¢ÇϽô ºÐµéÀº ¿©±â±îÁö¸¸ 
ÀÐÀ¸½Ã±â ¹Ù¶ø´Ï´Ù.



<<< Extends ¿Í Implements ÀÇ ÀÇ¹Ì¿Í Â÷ÀÌ >>>

"¿¡ÀÌ ±×°Å´Ù ¾Æ´Â °Å¾ß.. ´ÙÁß»ó¼Ó ...  ¾î¼±¸ Àú¼±¸.." ¶ó°í ¸¹Àº ºÐµéÀÌ ¾Ë°í
°è½Ê´Ï´Ù. ±×·¯³ª ÁøÁ¤ ¼Ó¶æÀº ÁøÁ¤ ±×·¸Áö ¾Ê½À´Ï´Ù.

ÀÌ Â÷ÀÌÁ¡À» ¾Ë±â Àü¿¡ ¿ì¸®´Â ¿ì¼± Type À̶ó´Â °Í¿¡ ´ëÇØ¼­ ¾Ë Çʿ䰡 ÀÖ½À´Ï´Ù.

TypeÀ̶õ ¹»±î¿ä ?

°£´ÜÇÏ°Ô ¸»Çϸé TypeÀ̶õ ¾î¶² ³ð°ú ´Ù¸¥ ³ðÀÌ "´Ù¸£´Ù" ¶ó°í ¸»ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ±Ù°Å, 
ȤÀº ÀÌÀ¯ (¿¡±¸ º¹ÀâÇÏ°Ô ¸»ÇØ ¹ö·È³×¿ä..) ¶ó°í Ã¥¿¡´Â ÀûÇô ÀÖ½À´Ï´Ù.

¸¸¾à¿¡ ¿ì¸®°¡ ±æÀ» °¡´Ù°¡ ¾î¶² µ¹¸æÀÌ A¸¦ ÁÖ¿ü°í, °è¼Ó ±æÀ» °¡´Ù°¡ µ¿Àü B¸¦ 
ÁÖ¿ü´Ù°í ÇսôÙ.

±×·³ ¿ì¸®´Â ¾î¶»°Ô A¿Í B°¡ ´Ù¸£´Ù°í ¸»ÇÒ¼ö ÀÖ½À´Ï±î ?

¸ð¾çÀÌ ´Ù¸£°í, »ö±òÀÌ ´Ù¸£°í, ¹«°Ô°¡ ´Ù¸£°í, ºñ¿­ÀÌ ´Ù¸£°í, ¹¹¹¹¹¹...
±×·¡¼­ "´Ù¸£´Ù" ¶ó°í ¸»ÇÑ´Ù¸é ¾ÆÁÖ Àß ¸»ÇÑ °ÍÀÔ´Ï´Ù.

¹Ù·Î ŸÀÔÀ̶ó´Â °³³äÀÌ µîÀåÇÏ°Ô µË´Ï´Ù.
µ¹¸æÀ̶õ ŸÀÔÀº »ý±ä°ÍÀº ¸ø»ý°å°í, »ö±òÀº ȸ»ö¿¡, ºñ¿­Àº ¹¹¿¡..
ÀÌ´Ù. ¶ó°í ¸»ÇÏ´Â °ÍÀÔ´Ï´Ù.

Áï ´Ù½Ã ¸»ÇÏÀÚ¸é ŸÀÔÀ̶ó´Â °ÍÀº ÀÏÁ¾ÀÇ Çൿ¾ç½Ä¿¡ ´ëÇÑ ¹ÝÀÀÀ̶ó°íµµ ¸» ÇÒ ¼ö 
ÀÖ½À´Ï´Ù. ¿ÜºÎ·Î ºÎÅÍÀÇ °°Àº Àڱؿ¡ ÀÇÇØ¼­ ¾î¶² µÎ ¹°Ã¼°¡ ´Ù¸£°Ô ¹ÝÀÀÇÑ´Ù¸é µÑÀº
´Ù¸¥ ŸÀÔÀÌ µÇ´Â °ÍÀÔ´Ï´Ù.

ÀÌÁ¦ ŸÀÔÀ̶ó´Â°Í¿¡ ´ëÇØ¼­ ¾î´ÀÁ¤µµ ±âº» °³³äÀÌ ÀâÇû´Ù°í º¸°í¿ä

±×·³ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ ¸»Çϴ ŸÀÔÀ̶õ ¹«¾úÀΰ¡¿¡ ´ëÇØ¼­ ¸»Çغ¸µµ·Ï ÇÏÁÒ.

¾Õ¿¡¼­ ¸»ÇѰͰú °ÅÀÇ ºñ½ÁÇÑ ³»¿ëÀÔ´Ï´Ù.
°á±¹Àº Çൿ¾ç½Ä, Áï ¿ÜºÎ·Î ºÎÅÍÀÇ Àڱؿ¡ ´ëÇÑ ¹ÝÀÀÀÔ´Ï´Ù.

±×·³ ¿ì¸®°¡ ŸÀÔÀ̶ó´Â °ÍÀ» Á¤ÀÇÇÑ´Ù´Â ¸»Àº ¾î¶² ¹°Ã¼¸¦ »õ·Î ¸¸µå´Â °ÍÀÓ°ú µ¿½Ã¿¡ 
±× ³ðÀÇ Çൿ ¹æ½ÄÀ» Á¤ÀÇÇÑ´Ù¶ó´Â ¸»ÀÌ µË´Ï´Ù.

Java ¿¡¼­ ¸»ÇÏ´Â Interface´Â ¹Ù·Î "»õ·Î¿î ŸÀÔ"À» Á¤ÀÇÇÏ´Â °ÍÀÌ º»·¡ »ç¸íÀÔ´Ï´Ù. 
(Abstract Classµµ ¿©±â¿¡ ÇØ´çÇÕ´Ï´Ù)

"¾î ±×·³ Class´Â ŸÀÔÀ» Á¤ÀÇÇÏ´Â °ÍÀÌ ¾Æ´Ñ°¡ ?" ¶ó°í »ý°¢ÇϽô ºÐµéÀÌ °è½Ç 
°ÍÀÔ´Ï´Ù.

³×. ¿ÏÀüÈ÷ Ʋ¸° ¸»Àº ¾Æ´Õ´Ï´Ù. Ç㳪 Ŭ·¡½º´Â °´Ã¼¸¦ Âï¾î³»´Â Ç®»§Æ² ÀÌ ¸ñÀûÀÌÁö 
ŸÀÔÀ» Á¤ÀÇÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù.

±×·³ implementsÇÑ´Ù´Â ¸»Àº ¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù.

´Ù½Ã ±âº»Àû ÀÌ·ÐÀ» ¼³¸íÇϰڽÀ´Ï´Ù.

°´Ã¼ÁöÇâ¿¡¼­´Â ¾î¶»°Ô Àç»ç¿ë¼º°ú È®À强À» º¸ÀåÇմϱî ?

"»ó¼Ó" À̶ó°í ¸»ÇϽô ºÐµéÀº ¾î´ÀÁ¤µµ´Â ¾Ë°í °è½Å ºÐµéÀ̰í "Dynamic Binding" ȤÀº
"Subtype Polymorphism"À̶ó°í ¸»ÇϽô ºÐµéÀº Á¤È®ÇÏ°Ô ¾Ë°í °è½Å°ÍÀÔ´Ï´Ù.

¿©±â¼­ ¿ì¸®´Â ÇѰ¡Áö ºÐ·ù¸¦ ÇØ¾ß ÇÕ´Ï´Ù. »ó¼Ó¿¡´Â µÎ°¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù (¸ð¸£¼ÌÁÒ ?)

±¸ÇöÀÇ »ó¼Ó°ú ŸÀÔÀÇ »ó¼ÓÀÔ´Ï´Ù. ±¸ÇöÀÇ »ó¼ÓÀÌ ¾Æ¸¶µµ ¸¹Àº ºÐµéÀÌ ÀÌÇØÇÏ°í °è½Ã´Â
»ó¼ÓÀ̸ç ŸÀÔÀÇ »ó¼ÓÀº ¾Æ¸¶µµ ¸ð¸£°í °è½Ç°Í °°½À´Ï´Ù.

±×·³ ŸÀÔ¿¡ ´ëÇÑ »ó¼Ó¿¡ ´ëÇØ¼­ ¸»¾¸À» ¸ÕÀú µå¸®°Ú½À´Ï´Ù.

ŸÀÔ¿¡ ´ëÇØ¼­´Â ¾Õ¿¡¼­ Á¤ÀǸ¦ ÇØµå·È½À´Ï´Ù.
±×·³ À̳ðÀ» »ó¼ÓÇϰڴٴ ¸»Àº Áï, ¾î¶²³ðÀÇ Çൿ¾ç½ÄÀº ±×´ë·Î °¡Á®¿ÀµÇ, Çൿ¾ç½Ä¿¡
´ëÇÑ ¹ÝÀÀÀº ÀçÁ¤ÀÇ Çϰڴ٠¶ó´Â ¸»ÀÌ µË´Ï´Ù. ÀçÁ¤ÀÇ Áï ¿À¹ö¶óÀ̵ùÀº ¹Ù·Î ¿©±â¼­ 
³ª¿À´Â ¸»ÀÔ´Ï´Ù.

´Ù½Ã ¸»Çؼ­ ŸÀÔ X°¡ ÀÖ°í, °´Ã¼ A°¡ ÀÖÀ»¶§ °´Ã¼ A°¡ X¸¦ »ó¼ÓÇÑ´Ù´Â ¸»Àº ´Ù½Ã 
¸»ÇÏÀÚ¸é A´Â X ŸÀÔÀÌ´Ù. ¶ó°í ¸»ÇÏ´Â °ÍÀÔ´Ï´Ù. (¿©±â±îÁö´Â ±×´ë·Î °¡Á®¿À´Â 
°ÍÀÔ´Ï´Ù)

±×¸®°í Çʿ信 ÀÇÇØ¼­ A°¡ X ŸÀÔÀ» ³ªÅ¸³»´Â Çൿ¾ç½Ä¿¡ ´ëÇØ¼­ Ưº°È÷ ´Ù¸£°Ô ¹ÝÀÀÀ»
º¸ÀÎ´Ù¸é ±× ºÎºÐ¸¸ ÀçÁ¤ÀÇ ÇÏ´Â °ÍÀÔ´Ï´Ù.

¿¹¸¦ µé¾î º¸¸é)

Æ÷À¯·ù ¶ó´Â ŸÀÔÀÌ ÀÖ½À´Ï´Ù.
»ç¶÷µµ Æ÷À¯·ù ŸÀÔÀÔ´Ï´Ù.
Äڱ⸮µµ Æ÷À¯·ù ŸÀÔÀÔ´Ï´Ù.
¿À¸®³Ê±¸¸®µµ Æ÷À¯·ù ŸÀÔÀÔ´Ï´Ù.

Æ÷À¯·ùÀÇ Çൿ ¾ç½Ä¿¡´Â "¸ðµç Æ÷À¯·ù´Â »õ³¢¸¦ ³º´Â´Ù"°¡ ÀÖ½À´Ï´Ù.
»ç¶÷µµ »õ³¢¸¦ ³º°í,
ÄÚ³¢¸®µµ »õ³¢¸¦ ³º°í,
±×·¯³ª ¿À¸®³Ê±¸¸®´Â ¾ËÀ» ³º½À´Ï´Ù.

³× ±×·¸½À´Ï´Ù. ¿À¸®³Ê±¸¸®µµ Æ÷À¯·ùÀÌÁö¸¸ ¿©±â¼­ ÀçÁ¤Àǰ¡ ÀÏ¾î ³­°Í ÀÔ´Ï´Ù.

À̰ÍÀÌ Å¸ÀÔÀÇ »ó¼ÓÀÔ´Ï´Ù.

¿©±â¼­ ¶Ç Áß¿äÇÑ °³³äÀÌ µîÀåÇϴµ¥ ŸÀÔÀ» »ó¼ÓÇÑ ³ð°ú »ó¼Ó ´çÇѳð°úÀÇ °ü°è¸¦ 
Subtype °ü°è¶ó°í ÇÕ´Ï´Ù.

X ¶ó´Â ŸÀÔÀÌ ÀÖ°í X'ÀÌ Å¸ÀÔ »ó¼ÓÀ» Çß´Ù¸é X'´Â XÀÇ ¼­ºê ŸÀÔÀ̶ó°í ¸»ÇÕ´Ï´Ù.

±×¸®°í À̶§ºÎÅÍ ¹Ù·Î °´Ã¼ÁöÇâÀÇ Áø¼öÀÎ SubtypingÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù.

Subtype PolymorphismÀ̶õ ±âÁ¸ÀÇ ¼öÇÐÀû ¸ðµ¨¿¡¼­´Â X ŸÀÔÀÇ ÀÚ¸®¿£ X ŸÀÔ¸¸ ´ëÀÔÇÒ
¼ö ÀÖÁö¸¸ ÀÌÁ¦´Â X ŸÀÔÀÇ ÀÚ¸®¿¡ XÀÇ ¸ðµç ¼­ºê ŸÀԵ鵵 ¿Ã ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù.

Áï 
X' a = new X';
X b = a;
¶ó°í µÇ´Â °ÍÀÔ´Ï´Ù.

±×·³ ÀÌÁ¦¼­¾ß ImplementsÀÇ Àǹ̸¦ ¾Ë·Áµå¸®°Ô µÇ¾ú½À´Ï´Ù.

implements ÇÑ´Ù¸»Àº ¿©·¯ºÐÀÌ ÁüÀÛ Çϼ̰ÚÁö¸¸ ŸÀÔÀ» »ó¼ÓÇϰڴٴ ¸»ÀÔ´Ï´Ù. 
(¸¸¾à ÀϺΠÀçÁ¤ÀǸ¦ ÇϽ÷Á¸é Abstract Class ¸¦ »ç¿ëÇϼ¼¿ä)

interfac Drawable {
void Draw(..);
}

À̶õ ¸»Àº Drawable À̶õ ŸÀÔÀ» Á¤ÀÇÇϴµ¥ ±×³ðÀÇ Çൿ¾ç½ÄÀº DrawÇÒ ¼ö ÀÖ¾î¾ß 
ÇÑ´Ù¶ó´Â ¸»ÀÔ´Ï´Ù.

class Shape implements Drawable À̶õ ¸»Àº ÀÌÁ¦ºÎÅÍ Shapeµµ Drawable ŸÀÔÀ̶õ 
¸»À̸ç Shape´Â DrawableÀÇ ¼­ºê ŸÀÔÀÌ µÇ´Â °ÍÀÌ¸ç ¸ðµç DrawableÀÚ¸®¿¡ Shapeµµ 
¿ï ¼ö ÀÖ°Ô µË´Ï´Ù.

À̷νá Àç»ç¿ë¼º°ú È®À强ÀÌ º¸ÀåÀÌ µÇ´Â °ÍÀÔ´Ï´Ù.

±×·¯³ª.. 
¸¹Àº OOPµé¿¡¼­´Â ŸÀÔÀÇ »ó¼Ó°ú ±¸ÇöÀÇ »ó¼ÓÀ» ±¸ºÐÇÏÁö ¾Ê°í ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ 
ÀÚ¹Ù¿¡¼­´Â Interface¸¦ µÒÀ¸·Î½á ¾î´ÀÁ¤µµ ±¸ºÐÀ» ÇÏ·Á ÇÏ¿´À¸³ª ¿ª½Ã ÀÚ¹Ù¿¡¼­µµ
¶Ñ·ÇÀÌ ±¸ºÐµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.

±×·¡¼­ °¡Àå ÁÁÀº ¹æ¹ýÀº »ó¼ÓÀ» ÇϽǶ§´Â SubtypingÀ» ÀüÁ¦·Î ÇÏ¿© Çϴ°ÍÀÌ °¡Àå
ÁÁ½À´Ï´Ù.


¸¹Àº ºÐµéÀÌ ÀÐÀ¸½Ã°í µµ¿òÀÌ µÇ¼ÌÀ¸¸é ÇÕ´Ï´Ù.
±Ã±ÝÇÑÁ¡ÀÌ ÀÖÀ¸¸é ¸ÞÀÏ·Î Áú¹®ÇØÁֽñ⠹ٶø´Ï´Ù.

¹ÚÀçÁø superman@mail.plasticsoftware.com
Á¦¸ñ : Re: ±âº»±â ÀÍÈ÷±â - ImplementsÀÇ ¼Ó¶æ.
±Û¾´ÀÌ: killjava(guest) 2001/05/24 14:25:12 Á¶È¸¼ö:1503 ÁÙ¼ö:195
Èì...¿À·¡°£¸¸¿¡ º¸´Â ÁÁÀº ±ÛÀ̱º¿©...

ÈçÈ÷µé »ó¼ÓÀ» °´Ã¼ÁöÇâÀÇ ¸ðµç °ÍÀ̶ó°í »ý°¢ÇÏ´Â ºÐµé²²
µû²ûÇÏÁö¸¸ ºÎµå·¯¿î ÀÏħÀ» ³õÀ¸¼Ì³×¿ä.

Àß ¾Æ½Ã°ÚÁö¸¸ ŸÀÔÀÇ °³³ä¿¡´Â ±¸ÇöÀÌ µé¾î°¡ ÀÖÀ¸¸é ¾ÈµÇÁÒ.
"Ŭ·¡½º = ŸÀÔ + ±¸Çö" À̶ó°í º¼ ¶§, Ãß»óŬ·¡½ºµµ ¾ö¹ÐÇÏ°Ô ¸»ÇÏÀÚ¸é
ŸÀÔÀ¸·Î º¼ ¼ö ¾ø´Ù°í »ý°¢ÇÕ´Ï´Ù. 
 
±×¸®°í ÀÚ¹Ù¿¡¼­, SubTyping°ú SubClassing °³³äÀÌ "¶Ñ·ÇÀÌ ±¸ºÐµÇ°í ÀÖÁö ¾Ê"´Â 
ÀÌÀ¯´Â ¾Æ¸¶µµ Syntax´Â C++¿¡¼­ ºô·Á¿ÔÁö¸¸ Semantics´Â SmalltalkÀ» 
µû¸£°í ÀÖ´Â ÀÚ¹ÙÀÇ Å»ýÀû(?) ÇѰ谡 ¾Æ´Ñ°¡ ½Í½À´Ï´Ù.

ÀÌ·± ¾ê±â°¡ ÀÖ´õ¶ó±¸¿©.
ÀÚ¹Ù´Â ³·¿¡´Â »õ°¡ µÇ°í ¹ã¿¡´Â Áã°¡ µÇ´Â ¹ÚÁã¶ó±¸¿ä.
±×·±µ¥ º¸Åë ¹ÚÁã°¡ ¾Æ´Ï¶ó Ȳ±Ý¹ÚÁã¶ó°í ÇÏ´õ±º¿ä^^

¾Ïư ÁÁÀº ±Û ¿Ã·ÁÁּż­ °¨»çÇϱ¸¿©....
¾ÕÀ¸·Îµµ °è¼Ó ºÎʵ叱²²¿©...

 

 

 


>
> {±âº»±â ÀÍÈ÷±â - ImplementsÀÇ ¼Ó¶æ.}
> {¹ÚÀçÁø(pjj78), superman@mail.plasticsoftware.com}
>
> 
> 
> ¿ì¼± Á¦°¡ ÀÌ ±ÛÀ» ¾²°Ô µÈ ÀÌÀ¯´Â Àý´ë·Î Àß³­Ã´À» ÇÏÀÚ°í Çϴ°ÍÀÌ ¾Æ´Õ´Ï´Ù.
> 
> ±×·±°ÍÀÌ ¾Æ´Ï¶ó ¸¹Àº ºÐµéÀÌ ¾ÆÁÖ Áß¿äÇÑ Á¡Àε¥µµ ºÒ±¸ÇÏ°í ±×³É Áö³ªÄ¡½Ã°Å³ª ȤÀº
> À߸øµÈ Áö½ÄÀ» »ç½ÇÀÎ°Í ¸¶³É ¾Ë°í °è½Å°ÍÀÌ ¾ÈŸ±î¿ö¼­ ÀÔ´Ï´Ù.
> 
> ±¹³»¿¡ ¸¹Àº ºÐµéÀÌ SCJP, SCJD ÀÚ°ÝÁõ¿¡ µµÀüÇϽðųª °¡Áö°í °è½ÃÁö¸¸ ÀÌ·¯ÇÑ ±âÃÊÀûÀÎ
> Â÷ÀÌÁ¡À» ÀÌÇØÇÏÁö ¸øÇÏ¿© ½ÃÇè¿¡ ¶³¾îÁö°Å³ª ȤÀº º¸´Ù ´õ ÁÁÀº ±¸Á¶¸¦ ¼³°èÇϴµ¥¿¡ 
> ¾î·Á¿òÀ» °¡Áö°í ÀÖÀ½À» Àú´Â ¿©·¯¹ø º¸¾Æ ¿ÔÀ¸¸ç, Àúµµ ¿ª½Ã ±×·¯ÇÏ¿´½À´Ï´Ù.
> 
> °õ°õÈ÷ ±× ÀÌÀ¯°¡ ¹ºÁö »ìÆìº» °á°ú ³»¸± ¼ö ÀÖ´Â °á·ÐÀº ÇÁ·Î±×·¡¸Ó·Î½á °¡Á®¾ßÇÒ 
> ±âÃÊÀûÀÎ ÀÌ·ÐÀ» ¹ÙÅÁÀ¸·Î ÇÏ¿© ÀÚ½ÅÀÇ ½Ç·ÂÀ» ½×´Â°ÍÀÌ ¾Æ´Ï¶ó ±¹³»ÀÇ ¸¹Àº ÇÁ·Î±×·¡¸Ó
> ºÐµéÀÌ ÀÌ·ÐÀº ¹«½ÃÇÑü, Å×Å©´ÐÀ̳ª ´Ü¼ø Ȱ¿ë¹ý¿¡¸¸ ÀÇÁ¸ÇÏ¸ç ¸¶Ä¡ ±×°ÍÀÌ ´ë´ÜÇÑ 
> ½Ç·ÂÀξç ÀÚ¶ûÀ» Çϴ°ÍÀÌ ¹®Á¦¶ó°í »ý°¢ÇÏ¿´½À´Ï´Ù.
> 
> ±×·¡¼­ º¸´Ù ¸¹Àº ºÐµéÀÌ Á»´õ ü°èÀûÀÎ ÀÌ·ÐÀ» ¹è¿ì½Ã±â À§Çؼ­ Á¦°¡ °¡Áö°í ÀÖ´Â
> ¸î°¡Áö Áö½ÄµéÀ» Àû¾îº¸°íÀÚ ÇÕ´Ï´Ù.
> 
> ¾ÆÁÖ ¹Ø¹ÙÅÁ ºÎÅÍ ¿Ã¶ó¿Ã ¼ö´Â ¾ø±â ¶§¹®¿¡ ¾î´ÀÁ¤µµ Áß°£¼öÁØ¿¡¼­ ¼³¸íÀ» Çϵµ·Ï 
> ÇϰڽÀ´Ï´Ù.
> 
> "À̷а°Àº°Í ÇÊ¿ä¾ø¾î.. ±â³É Â¥¸é µÇ´Â°ÅÁö.." ¶ó°í »ý°¢ÇϽô ºÐµéÀº ¿©±â±îÁö¸¸ 
> ÀÐÀ¸½Ã±â ¹Ù¶ø´Ï´Ù.
> 
> 
> 
> <<< Extends ¿Í Implements ÀÇ ÀÇ¹Ì¿Í Â÷ÀÌ >>>
> 
> "¿¡ÀÌ ±×°Å´Ù ¾Æ´Â °Å¾ß.. ´ÙÁß»ó¼Ó ...  ¾î¼±¸ Àú¼±¸.." ¶ó°í ¸¹Àº ºÐµéÀÌ ¾Ë°í
> °è½Ê´Ï´Ù. ±×·¯³ª ÁøÁ¤ ¼Ó¶æÀº ÁøÁ¤ ±×·¸Áö ¾Ê½À´Ï´Ù.
> 
> ÀÌ Â÷ÀÌÁ¡À» ¾Ë±â Àü¿¡ ¿ì¸®´Â ¿ì¼± Type À̶ó´Â °Í¿¡ ´ëÇØ¼­ ¾Ë Çʿ䰡 ÀÖ½À´Ï´Ù.
> 
> TypeÀ̶õ ¹»±î¿ä ?
> 
> °£´ÜÇÏ°Ô ¸»Çϸé TypeÀ̶õ ¾î¶² ³ð°ú ´Ù¸¥ ³ðÀÌ "´Ù¸£´Ù" ¶ó°í ¸»ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ±Ù°Å, 
> ȤÀº ÀÌÀ¯ (¿¡±¸ º¹ÀâÇÏ°Ô ¸»ÇØ ¹ö·È³×¿ä..) ¶ó°í Ã¥¿¡´Â ÀûÇô ÀÖ½À´Ï´Ù.
> 
> ¸¸¾à¿¡ ¿ì¸®°¡ ±æÀ» °¡´Ù°¡ ¾î¶² µ¹¸æÀÌ A¸¦ ÁÖ¿ü°í, °è¼Ó ±æÀ» °¡´Ù°¡ µ¿Àü B¸¦ 
> ÁÖ¿ü´Ù°í ÇսôÙ.
> 
> ±×·³ ¿ì¸®´Â ¾î¶»°Ô A¿Í B°¡ ´Ù¸£´Ù°í ¸»ÇÒ¼ö ÀÖ½À´Ï±î ?
> 
> ¸ð¾çÀÌ ´Ù¸£°í, »ö±òÀÌ ´Ù¸£°í, ¹«°Ô°¡ ´Ù¸£°í, ºñ¿­ÀÌ ´Ù¸£°í, ¹¹¹¹¹¹...
> ±×·¡¼­ "´Ù¸£´Ù" ¶ó°í ¸»ÇÑ´Ù¸é ¾ÆÁÖ Àß ¸»ÇÑ °ÍÀÔ´Ï´Ù.
> 
> ¹Ù·Î ŸÀÔÀ̶ó´Â °³³äÀÌ µîÀåÇÏ°Ô µË´Ï´Ù.
> µ¹¸æÀ̶õ ŸÀÔÀº »ý±ä°ÍÀº ¸ø»ý°å°í, »ö±òÀº ȸ»ö¿¡, ºñ¿­Àº ¹¹¿¡..
> ÀÌ´Ù. ¶ó°í ¸»ÇÏ´Â °ÍÀÔ´Ï´Ù.
> 
> Áï ´Ù½Ã ¸»ÇÏÀÚ¸é ŸÀÔÀ̶ó´Â °ÍÀº ÀÏÁ¾ÀÇ Çൿ¾ç½Ä¿¡ ´ëÇÑ ¹ÝÀÀÀ̶ó°íµµ ¸» ÇÒ ¼ö 
> ÀÖ½À´Ï´Ù. ¿ÜºÎ·Î ºÎÅÍÀÇ °°Àº Àڱؿ¡ ÀÇÇØ¼­ ¾î¶² µÎ ¹°Ã¼°¡ ´Ù¸£°Ô ¹ÝÀÀÇÑ´Ù¸é µÑÀº
> ´Ù¸¥ ŸÀÔÀÌ µÇ´Â °ÍÀÔ´Ï´Ù.
> 
> ÀÌÁ¦ ŸÀÔÀ̶ó´Â°Í¿¡ ´ëÇØ¼­ ¾î´ÀÁ¤µµ ±âº» °³³äÀÌ ÀâÇû´Ù°í º¸°í¿ä
> 
> ±×·³ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ ¸»Çϴ ŸÀÔÀ̶õ ¹«¾úÀΰ¡¿¡ ´ëÇØ¼­ ¸»Çغ¸µµ·Ï ÇÏÁÒ.
> 
> ¾Õ¿¡¼­ ¸»ÇѰͰú °ÅÀÇ ºñ½ÁÇÑ ³»¿ëÀÔ´Ï´Ù.
> °á±¹Àº Çൿ¾ç½Ä, Áï ¿ÜºÎ·Î ºÎÅÍÀÇ Àڱؿ¡ ´ëÇÑ ¹ÝÀÀÀÔ´Ï´Ù.
> 
> ±×·³ ¿ì¸®°¡ ŸÀÔÀ̶ó´Â °ÍÀ» Á¤ÀÇÇÑ´Ù´Â ¸»Àº ¾î¶² ¹°Ã¼¸¦ »õ·Î ¸¸µå´Â °ÍÀÓ°ú µ¿½Ã¿¡ 
> ±× ³ðÀÇ Çൿ ¹æ½ÄÀ» Á¤ÀÇÇÑ´Ù¶ó´Â ¸»ÀÌ µË´Ï´Ù.
> 
> Java ¿¡¼­ ¸»ÇÏ´Â Interface´Â ¹Ù·Î "»õ·Î¿î ŸÀÔ"À» Á¤ÀÇÇÏ´Â °ÍÀÌ º»·¡ »ç¸íÀÔ´Ï´Ù. 
> (Abstract Classµµ ¿©±â¿¡ ÇØ´çÇÕ´Ï´Ù)
> 
> "¾î ±×·³ Class´Â ŸÀÔÀ» Á¤ÀÇÇÏ´Â °ÍÀÌ ¾Æ´Ñ°¡ ?" ¶ó°í »ý°¢ÇϽô ºÐµéÀÌ °è½Ç 
> °ÍÀÔ´Ï´Ù.
> 
> ³×. ¿ÏÀüÈ÷ Ʋ¸° ¸»Àº ¾Æ´Õ´Ï´Ù. Ç㳪 Ŭ·¡½º´Â °´Ã¼¸¦ Âï¾î³»´Â Ç®»§Æ² ÀÌ ¸ñÀûÀÌÁö 
> ŸÀÔÀ» Á¤ÀÇÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù.
> 
> ±×·³ implementsÇÑ´Ù´Â ¸»Àº ¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
> 
> ´Ù½Ã ±âº»Àû ÀÌ·ÐÀ» ¼³¸íÇϰڽÀ´Ï´Ù.
> 
> °´Ã¼ÁöÇâ¿¡¼­´Â ¾î¶»°Ô Àç»ç¿ë¼º°ú È®À强À» º¸ÀåÇմϱî ?
> 
> "»ó¼Ó" À̶ó°í ¸»ÇϽô ºÐµéÀº ¾î´ÀÁ¤µµ´Â ¾Ë°í °è½Å ºÐµéÀ̰í "Dynamic Binding" ȤÀº
> "Subtype Polymorphism"À̶ó°í ¸»ÇϽô ºÐµéÀº Á¤È®ÇÏ°Ô ¾Ë°í °è½Å°ÍÀÔ´Ï´Ù.
> 
> ¿©±â¼­ ¿ì¸®´Â ÇѰ¡Áö ºÐ·ù¸¦ ÇØ¾ß ÇÕ´Ï´Ù. »ó¼Ó¿¡´Â µÎ°¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù (¸ð¸£¼ÌÁÒ ?)
> 
> ±¸ÇöÀÇ »ó¼Ó°ú ŸÀÔÀÇ »ó¼ÓÀÔ´Ï´Ù. ±¸ÇöÀÇ »ó¼ÓÀÌ ¾Æ¸¶µµ ¸¹Àº ºÐµéÀÌ ÀÌÇØÇÏ°í °è½Ã´Â
> »ó¼ÓÀ̸ç ŸÀÔÀÇ »ó¼ÓÀº ¾Æ¸¶µµ ¸ð¸£°í °è½Ç°Í °°½À´Ï´Ù.
> 
> ±×·³ ŸÀÔ¿¡ ´ëÇÑ »ó¼Ó¿¡ ´ëÇØ¼­ ¸»¾¸À» ¸ÕÀú µå¸®°Ú½À´Ï´Ù.
> 
> ŸÀÔ¿¡ ´ëÇØ¼­´Â ¾Õ¿¡¼­ Á¤ÀǸ¦ ÇØµå·È½À´Ï´Ù.
> ±×·³ À̳ðÀ» »ó¼ÓÇϰڴٴ ¸»Àº Áï, ¾î¶²³ðÀÇ Çൿ¾ç½ÄÀº ±×´ë·Î °¡Á®¿ÀµÇ, Çൿ¾ç½Ä¿¡
> ´ëÇÑ ¹ÝÀÀÀº ÀçÁ¤ÀÇ Çϰڴ٠¶ó´Â ¸»ÀÌ µË´Ï´Ù. ÀçÁ¤ÀÇ Áï ¿À¹ö¶óÀ̵ùÀº ¹Ù·Î ¿©±â¼­ 
> ³ª¿À´Â ¸»ÀÔ´Ï´Ù.
> 
> ´Ù½Ã ¸»Çؼ­ ŸÀÔ X°¡ ÀÖ°í, °´Ã¼ A°¡ ÀÖÀ»¶§ °´Ã¼ A°¡ X¸¦ »ó¼ÓÇÑ´Ù´Â ¸»Àº ´Ù½Ã 
> ¸»ÇÏÀÚ¸é A´Â X ŸÀÔÀÌ´Ù. ¶ó°í ¸»ÇÏ´Â °ÍÀÔ´Ï´Ù. (¿©±â±îÁö´Â ±×´ë·Î °¡Á®¿À´Â 
> °ÍÀÔ´Ï´Ù)
> 
> ±×¸®°í Çʿ信 ÀÇÇØ¼­ A°¡ X ŸÀÔÀ» ³ªÅ¸³»´Â Çൿ¾ç½Ä¿¡ ´ëÇØ¼­ Ưº°È÷ ´Ù¸£°Ô ¹ÝÀÀÀ»
> º¸ÀÎ´Ù¸é ±× ºÎºÐ¸¸ ÀçÁ¤ÀÇ ÇÏ´Â °ÍÀÔ´Ï´Ù.
> 
> ¿¹¸¦ µé¾î º¸¸é)
> 
> Æ÷À¯·ù ¶ó´Â ŸÀÔÀÌ ÀÖ½À´Ï´Ù.
> »ç¶÷µµ Æ÷À¯·ù ŸÀÔÀÔ´Ï´Ù.
> Äڱ⸮µµ Æ÷À¯·ù ŸÀÔÀÔ´Ï´Ù.
> ¿À¸®³Ê±¸¸®µµ Æ÷À¯·ù ŸÀÔÀÔ´Ï´Ù.
> 
> Æ÷À¯·ùÀÇ Çൿ ¾ç½Ä¿¡´Â "¸ðµç Æ÷À¯·ù´Â »õ³¢¸¦ ³º´Â´Ù"°¡ ÀÖ½À´Ï´Ù.
> »ç¶÷µµ »õ³¢¸¦ ³º°í,
> ÄÚ³¢¸®µµ »õ³¢¸¦ ³º°í,
> ±×·¯³ª ¿À¸®³Ê±¸¸®´Â ¾ËÀ» ³º½À´Ï´Ù.
> 
> ³× ±×·¸½À´Ï´Ù. ¿À¸®³Ê±¸¸®µµ Æ÷À¯·ùÀÌÁö¸¸ ¿©±â¼­ ÀçÁ¤Àǰ¡ ÀÏ¾î ³­°Í ÀÔ´Ï´Ù.
> 
> À̰ÍÀÌ Å¸ÀÔÀÇ »ó¼ÓÀÔ´Ï´Ù.
> 
> ¿©±â¼­ ¶Ç Áß¿äÇÑ °³³äÀÌ µîÀåÇϴµ¥ ŸÀÔÀ» »ó¼ÓÇÑ ³ð°ú »ó¼Ó ´çÇѳð°úÀÇ °ü°è¸¦ 
> Subtype °ü°è¶ó°í ÇÕ´Ï´Ù.
> 
> X ¶ó´Â ŸÀÔÀÌ ÀÖ°í X'ÀÌ Å¸ÀÔ »ó¼ÓÀ» Çß´Ù¸é X'´Â XÀÇ ¼­ºê ŸÀÔÀ̶ó°í ¸»ÇÕ´Ï´Ù.
> 
> ±×¸®°í À̶§ºÎÅÍ ¹Ù·Î °´Ã¼ÁöÇâÀÇ Áø¼öÀÎ SubtypingÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù.
> 
> Subtype PolymorphismÀ̶õ ±âÁ¸ÀÇ ¼öÇÐÀû ¸ðµ¨¿¡¼­´Â X ŸÀÔÀÇ ÀÚ¸®¿£ X ŸÀÔ¸¸ ´ëÀÔÇÒ
> ¼ö ÀÖÁö¸¸ ÀÌÁ¦´Â X ŸÀÔÀÇ ÀÚ¸®¿¡ XÀÇ ¸ðµç ¼­ºê ŸÀԵ鵵 ¿Ã ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù.
> 
> Áï 
> X' a = new X';
> X b = a;
> ¶ó°í µÇ´Â °ÍÀÔ´Ï´Ù.
> 
> ±×·³ ÀÌÁ¦¼­¾ß ImplementsÀÇ Àǹ̸¦ ¾Ë·Áµå¸®°Ô µÇ¾ú½À´Ï´Ù.
> 
> implements ÇÑ´Ù¸»Àº ¿©·¯ºÐÀÌ ÁüÀÛ Çϼ̰ÚÁö¸¸ ŸÀÔÀ» »ó¼ÓÇϰڴٴ ¸»ÀÔ´Ï´Ù. 
> (¸¸¾à ÀϺΠÀçÁ¤ÀǸ¦ ÇϽ÷Á¸é Abstract Class ¸¦ »ç¿ëÇϼ¼¿ä)
> 
> interfac Drawable {
> void Draw(..);
> }
> 
> À̶õ ¸»Àº Drawable À̶õ ŸÀÔÀ» Á¤ÀÇÇϴµ¥ ±×³ðÀÇ Çൿ¾ç½ÄÀº DrawÇÒ ¼ö ÀÖ¾î¾ß 
> ÇÑ´Ù¶ó´Â ¸»ÀÔ´Ï´Ù.
> 
> class Shape implements Drawable À̶õ ¸»Àº ÀÌÁ¦ºÎÅÍ Shapeµµ Drawable ŸÀÔÀ̶õ 
> ¸»À̸ç Shape´Â DrawableÀÇ ¼­ºê ŸÀÔÀÌ µÇ´Â °ÍÀÌ¸ç ¸ðµç DrawableÀÚ¸®¿¡ Shapeµµ 
> ¿ï ¼ö ÀÖ°Ô µË´Ï´Ù.
> 
> À̷νá Àç»ç¿ë¼º°ú È®À强ÀÌ º¸ÀåÀÌ µÇ´Â °ÍÀÔ´Ï´Ù.
> 
> ±×·¯³ª.. 
> ¸¹Àº OOPµé¿¡¼­´Â ŸÀÔÀÇ »ó¼Ó°ú ±¸ÇöÀÇ »ó¼ÓÀ» ±¸ºÐÇÏÁö ¾Ê°í ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ 
> ÀÚ¹Ù¿¡¼­´Â Interface¸¦ µÒÀ¸·Î½á ¾î´ÀÁ¤µµ ±¸ºÐÀ» ÇÏ·Á ÇÏ¿´À¸³ª ¿ª½Ã ÀÚ¹Ù¿¡¼­µµ
> ¶Ñ·ÇÀÌ ±¸ºÐµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.
> 
> ±×·¡¼­ °¡Àå ÁÁÀº ¹æ¹ýÀº »ó¼ÓÀ» ÇϽǶ§´Â SubtypingÀ» ÀüÁ¦·Î ÇÏ¿© Çϴ°ÍÀÌ °¡Àå
> ÁÁ½À´Ï´Ù.
> 
> 
> ¸¹Àº ºÐµéÀÌ ÀÐÀ¸½Ã°í µµ¿òÀÌ µÇ¼ÌÀ¸¸é ÇÕ´Ï´Ù.
> ±Ã±ÝÇÑÁ¡ÀÌ ÀÖÀ¸¸é ¸ÞÀÏ·Î Áú¹®ÇØÁֽñ⠹ٶø´Ï´Ù.
> 
> ¹ÚÀçÁø superman@mail.plasticsoftware.com
Á¦¸ñ : ¼Ò ±Í¿¡ °æ Àбâ¶õ Àý µÎ°í ÇÏ´Â ¸»ÀÌ ¾Æ´ÑÁö...
±Û¾´ÀÌ: °æÇèÀÌ(guest) 2001/05/30 09:55:04 Á¶È¸¼ö:1003 ÁÙ¼ö:54
Àú´Â Àü°øÀÌ ÄÄÇ»ÅÍ Âʵµ ¾Æ´Ï°í, ÇÁ·Î±×·¡¹ÖÀ» ÇÑ Áöµµ ¾ó¸¶ µÇÁö ¾Ê¾Æ ÀÌ·± °Íµé¿¡
´ëÇØ¼­ ÀüÇô ¸ð¸£°í ÀÖ¾ú½À´Ï´Ù.

------------------

Á¦°¡ ÀÌÇØÇϱâ·Î´Â

±¸ÇöÀÇ »ó¼Ó -> extends
ŸÀÔÀÇ »ó¼Ó -> implements

·Î mappingµÇ´Â °Å °°½À´Ï´Ù. ¿¹¸¦ µé¾îº¸¸é..

public class Test
{
    public void method1()
    {
        // do something..
    }
}

public class Sub1 extends Test
{
    public void method1()
    {
        // do something NEW!!
    }
}

public class Sub2 extends Test
{
    public void method2()
    {
        // do something with method1() from super class
    }
}

ÀÇ °æ¿ì¿¡,

Sub1 -> ±¸ÇöÀÇ »ó¼Ó(subclassing?)
Sub2 -> ŸÀÔÀÇ »ó¼Ó(subtyping?)

ÀÌ µÇ´Â °Í °°½À´Ï´Ù.

-------------------------------

ÀÐ°í ³ª´Ï, Áö±Ý±îÁö ½á¿Ô´ø »ó¼ÓÀº µÎ °¡Áö·Î °æ¿ì¸¦ ºÐ¸®ÇÒ ¼ö ÀÖ±¸³ª¶ó´Â »ý°¢±îÁö´Â
µé¾ú½À´Ï´Ù. ±×·±µ¥, ÀÌ·¸°Ô µÎ °¡Áö·Î ºÐ¸®ÇÔÀ¸·Î½á ¾ò´Â À̵æÀÌ ¹«¾ùÀÎÁö´Â ¾ÆÁ÷
¸ð¸£°Ú³×¿ä.

"ÀÌ·¯ÀÌ·¯ÇÑ ÀÌÀ¯·Î ¾î¶² °æ¿ì¿¡´Â ±¸ÇöÀÇ »ó¼ÓÀÌ È¿°úÀûÀ̰í, ¾î¶² °æ¿ì¿¡´Â ŸÀÔÀÇ
»ó¼ÓÀÌ ´õ ÁÁ´Ù. ±×·¡¼­ ±¸ÇöÀÇ »ó¼Ó°ú ŸÀÔÀÇ »ó¼ÓÀ» ºÐ¸®Çؼ­ »ý°¢ÇÏ¸é ¸Ó¸® ¼Ó¿¡¼­
¸íÄèÇϰÔ.. ±× ¾²ÀÓÀ» Á¤¸®Çϰí, ¾Ë¸ÂÀº °÷¿¡ Ȱ¿ëÇÒ¼ö ÀÖ´Ù."

¶ó´Â °Í¿¡ ´ëÇÑ ¼³¸íÀ» Á» ºÎʵ右´Ï´Ù.
Á¦¸ñ : Re: ºÐ¾÷ÀÌ ÇÊ¿äÇÒ ½Ã µµ¿òÀÌ µË´Ï´Ù.
±Û¾´ÀÌ: Ryan(guest) 2008/01/10 18:55:47 Á¶È¸¼ö:1443 ÁÙ¼ö:17
ÀÌ ¾²·¹µå°¡ ³ª¿ÂÁöµµ 7³âÀ̳ª µÇ¾úÁö¸¸ »õ»ï ´ä±ÛÀ» ´Þ¾Æ º¸°Ú½À´Ï´Ù.

ÀÌÀ¯´Â ¸¹ÀÌ ÀÖ°ÚÁö¸¸ ±× Áß Áß¿äÇÑ ÀÌÀ¯ ÇѰ¡Áö¸¦ Àû¾î º¸ÀÚ¸é...
°³¹ßÀÚ°£ ȤÀº ¾÷ü°£ ºÐ¾÷½Ã ÀÌ·¸°Ô °³¹ßÇØ ÁֽʽÿÀ Çϴ ǥÁØÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

oopÀû ¼³°è¿¡¼­ Àüü ¼Ò½º°¡ ¿Ï¼ºµÇÁö ¾Ê¾Ò¾Æµµ ÀÎÅÍÆäÀ̽º ¸¸À¸·Î ÀϺθ¦ ¸¸µé¾î ³õ°í
ÃßÈÄ ±¸Çö ¼Ò½º°¡ ¿Ï¼ºµÈ ÈÄ °áÇÕ ½Ãų ¼ö ÀÖ°Ô µÇ´Â °Ì´Ï´Ù.

À¯Áöº¸¼ö¶§µµ ±¸ÇöÀÌ À¯¸®Çѵ¥ ±× ÀÌÀ¯´Â
»ó¼ÓÀº ¸î´Ü°è¸¸ °è¼Ó »ó¼Ó¹Þ¾Æµµ »óÀ§ Ŭ·¡½º¸¦ º¼ ¼ö ¾ø±â ¶§¹®¿¡
µû¶ó°¡´Ùº¸¸é ½ºÆÄ°ÔƼ ¼Ò½º°¡ µÉ È®·üÀÌ Ä¿Áý´Ï´Ù.
»ó¼Ó¹ÞÀº Ŭ·¡½º¿¡¼­ ¹«½¼ ¼Ò½º°¡ ½ÇÇàµÉÁöµµ ¿¹ÃøÇÒ ¼ö ¾øÀ» ¼öµµ ÀÖ°í¿ä.
¹Ý¸é ±¸ÇöÀº? ±ò²ûÇÏÁö¿ä.

ºÎÁ·ÇÑ ³»°øÀ¸·Î ¸î±ÛÀÚ Àû¾î º¸¾Ò´Âµ¥
À߸øµÇ°Å³ª ºÎÁ·ÇÑ ³»¿ëÀº ´Ù¸¥ ºÐÀÌ º¸ÃæÇØ ÁֽʽÿÀ.
±×·³.. ^^
  [±Û¸ñ·Ï /½Ã°£¼ø] [´ä±Û¾²±â] [ÇÁ¸°Æ®]