ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ46²¿·Ö
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡
¡¡¡¡void¡¡erase£¨£©¡¡£û£ý¡¡¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Circle¡¡extends¡¡Shape¡¡£û¡¡¡¡
¡¡¡¡void¡¡draw£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Circle¡£draw£¨£©¡¨£©£»¡¡¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡void¡¡erase£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Circle¡£erase£¨£©¡¨£©£»¡¡¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Square¡¡extends¡¡Shape¡¡£û¡¡¡¡
¡¡¡¡void¡¡draw£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Square¡£draw£¨£©¡¨£©£»¡¡¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡void¡¡erase£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Square¡£erase£¨£©¡¨£©£»¡¡¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Triangle¡¡extends¡¡Shape¡¡£û¡¡¡¡
¡¡¡¡void¡¡draw£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Triangle¡£draw¡¡£¨£©¡¨£©£»¡¡¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡void¡¡erase£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Triangle¡£erase£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
public¡¡class¡¡Shapes¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡Shape¡¡randShape£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡switch£¨£¨int£©£¨Math¡£random£¨£©¡¡*¡¡3£©£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡default£º¡¡//¡¡To¡¡quiet¡¡the¡¡piler¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡case¡¡0£º¡¡return¡¡new¡¡Circle£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡case¡¡1£º¡¡return¡¡new¡¡Square£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡case¡¡2£º¡¡return¡¡new¡¡Triangle£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡Shape£§£§¡¡s¡¡=¡¡new¡¡Shape£§9£§£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Fill¡¡up¡¡the¡¡array¡¡with¡¡shapes£º¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡s¡£length£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡s£§i£§¡¡=¡¡randShape£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡164¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡166¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Make¡¡polymorphic¡¡method¡¡calls£º¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡s¡£length£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡s£§i£§¡£draw£¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
Õë¶Ô´Ó¡¡Shape¡¡ÑÜÉú³öÀ´µÄËùÓж«Î÷£¬Shape¡¡½¨Á¢ÁËÒ»¸öͨÓýӿڡª¡ªÒ²¾ÍÊÇ˵£¬ËùÓУ¨¼¸ºÎ£©ÐÎ×´¶¼¿ÉÒÔÃè¡¡
»æºÍɾ³ý¡£ÑÜÉúÀา¸ÇÁËÕâЩ¶¨Ò壬ΪÿÖÖÌØÊâÀàÐ͵ļ¸ºÎÐÎ×´¶¼ÌṩÁ˶ÀÒ»ÎÞ¶þµÄÐÐΪ¡£¡¡¡¡
ÔÚÖ÷Àà¡¡Shapes¡¡À°üº¬ÁËÒ»¸östatic¡¡·½·¨£¬ÃûΪ¡¡randShape£¨£©¡£ËüµÄ×÷ÓÃÊÇÔÚÿ´Îµ÷ÓÃËüʱΪij¸öËæ»úÑ¡¡¡
ÔñµÄShape¡¡¶ÔÏóÉú³ÉÒ»¸ö¾ä±ú¡£Çë×¢ÒâÉÏËÝÔìÐÍÊÇÔÚÿ¸ö¡¡return¡¡Óï¾äÀï·¢ÉúµÄ¡£Õâ¸öÓï¾äÈ¡µÃÖ¸ÏòÒ»¸ö¡¡
Circle£¬Square¡¡»òÕßTriangle¡¡µÄ¾ä±ú£¬²¢½«Æä×÷Ϊ·µ»ØÀàÐÍ¡¡Shape¡¡·¢¸ø·½·¨¡£ËùÒÔÎÞÂÛʲôʱºòµ÷ÓÃÕâ¸ö¡¡
·½·¨£¬¾Í¾ø¶Ôû»ú»áÁ˽âËüµÄ¾ßÌåÀàÐ͵½µ×ÊÇʲô£¬ÒòΪ¿Ï¶¨»á»ñµÃÒ»¸öµ¥´¿µÄ¡¡Shape¡¡¾ä±ú¡£¡¡¡¡
main£¨£©°üº¬ÁË¡¡Shape¡¡¾ä±úµÄÒ»¸öÊý×飬ÆäÖеÄÊý¾Ýͨ¹ý¶ÔrandShape£¨£©µÄµ÷ÓÃÌîÈë¡£ÔÚÕâ¸öʱºò£¬ÎÒÃÇÖªµÀ¡¡
×Ô¼ºÓµÓÐShape£¬µ«²»Öª³ý´ËÖ®ÍâÈκξßÌåµÄÇé¿ö£¨±àÒëÆ÷ͬÑù²»Öª£©¡£È»¶ø£¬µ±ÎÒÃÇÔÚÕâ¸öÊý×éÀï²½½ø£¬¡¡
²¢ÎªÃ¿¸öÔªËص÷Óá¡draw£¨£©µÄʱºò£¬Óë¸÷ÀàÐÍÓйصÄÕýÈ·ÐÐΪ»áħÊõ°ãµØ·¢Éú£¬¾ÍÏóÏÂÃæÕâ¸öÊä³öʾÀýչʾµÄ¡¡
ÄÇÑù£º¡¡¡¡
¡¡¡¡
Circle¡£draw£¨£©¡¡¡¡
Triangle¡£draw£¨£©¡¡¡¡
Circle¡£draw£¨£©¡¡¡¡
Circle¡£draw£¨£©¡¡¡¡
Circle¡£draw£¨£©¡¡¡¡
Square¡£draw£¨£©¡¡¡¡
Triangle¡£draw£¨£©¡¡¡¡
Square¡£draw£¨£©¡¡¡¡
Square¡£draw£¨£©¡¡¡¡
¡¡¡¡
µ±È»£¬ÓÉÓÚ¼¸ºÎÐÎ×´ÊÇÿ´ÎËæ»úÑ¡ÔñµÄ£¬ËùÒÔÿ´ÎÔËÐж¼¿ÉÄÜÓв»Í¬µÄ½á¹û¡£Ö®ËùÒÔҪͻ³öÐÎ×´µÄËæ»úÑ¡¡¡
Ôñ£¬ÊÇΪÁËÈôó¼ÒÉî¿ÌÌå»áÕâÒ»µã£ºÎªÁËÔÚ±àÒëµÄʱºò·¢³öÕýÈ·µÄµ÷Ó㬱àÒëÆ÷ÎãÐè»ñµÃÈκÎÌØÊâµÄÇ鱨¡£¡¡
¶Ô¡¡draw£¨£©µÄËùÓе÷Óö¼ÊÇͨ¹ý¶¯Ì¬°ó¶¨½øÐеġ£¡¡¡¡
7¡£2¡£3¡¡¡¡À©Õ¹ÐÔ¡¡¡¡
ÏÖÔÚ£¬ÈÃÎÒÃÇÈÔÈ»·µ»ØÀÖÆ÷£¨Instrument£©Ê¾Àý¡£ÓÉÓÚ´æÔÚ¶àÐÎÐÔ£¬ËùÒԿɸù¾Ý×Ô¼ºµÄÐèÒªÏòϵͳÀï¼ÓÈëÈΡ¡
Òâ¶àµÄÐÂÀàÐÍ£¬Í¬Ê±ÎãÐè¸ü¸Ä¡¡true£¨£©·½·¨¡£ÔÚÒ»¸öÉè¼ÆÁ¼ºÃµÄ¡¡OOP¡¡³ÌÐòÖУ¬ÎÒÃǵĴó¶àÊý»òÕßËùÓз½·¨¶¼»á¡¡
×ñ´Ó¡¡tune£¨£©µÄÄ£ÐÍ£¬¶øÇÒÖ»Óë»ù´¡Àà½Ó¿ÚͨÐÅ¡£ÎÒÃÇ˵ÕâÑùµÄ³ÌÐò¾ßÓС°À©Õ¹ÐÔ¡±£¬ÒòΪ¿ÉÒÔ´ÓͨÓõĻù´¡¡¡
Àà¼Ì³ÐеÄÊý¾ÝÀàÐÍ£¬´Ó¶øÐÂÌíһЩ¹¦ÄÜ¡£Èç¹ûÊÇΪÁËÊÊÓ¦ÐÂÀàµÄÒªÇó£¬ÄÇô¶Ô»ù´¡Àà½Ó¿Ú½øÐвÙ×ݵķ½·¨¡¡
¸ù±¾²»ÐèÒª¸Ä±ä£¬¡¡¡¡
¶ÔÓÚÀÖÆ÷Àý×Ó£¬¼ÙÉèÎÒÃÇÔÚ»ù´¡ÀàÀï¼ÓÈë¸ü¶àµÄ·½·¨£¬ÒÔ¼°Ò»ÏµÁÐÐÂÀ࣬ÄÇô»á³öÏÖʲôÇé¿öÄØ£¿ÏÂÃæÊÇʾ¡¡
Òâͼ£º¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡165¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡167¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
ËùÓÐÕâЩÐÂÀ඼ÄÜÓëÀÏÀࡪ¡ªtune£¨£©Ä¬ÆõµØ¹¤×÷£¬ÎãÐè¶Ôtune£¨£©×÷Èκε÷Õû¡£¼´Ê¹¡¡tune£¨£©Î»ÓÚÒ»¸ö¶ÀÁ¢µÄÎÄ¡¡
¼þÀ¶ø½«Ð·½·¨Ìí¼Óµ½¡¡Instrument¡¡µÄ½Ó¿Ú£¬tune£¨£©Ò²ÄÜÕýÈ·µØ¹¤×÷£¬²»ÐèÒªÖØбàÒë¡£ÏÂÃæÕâ¸ö³ÌÐòÊǶԡ¡
ÉÏÊöʾÒâͼµÄ¾ßÌåʵÏÖ£º¡¡¡¡
¡¡¡¡
//£º¡¡Music3¡£java¡¡¡¡
//¡¡An¡¡extensible¡¡program¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
class¡¡Instrument3¡¡£û¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Instrument3¡£play£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡String¡¡what£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡¡¨Instrument3¡¨£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡void¡¡adjust£¨£©¡¡£û£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Wind3¡¡extends¡¡Instrument3¡¡£û¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Wind3¡£play£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡String¡¡what£¨£©¡¡£û¡¡return¡¡¡¨Wind3¡¨£»¡¡£ý¡¡¡¡
¡¡¡¡public¡¡void¡¡adjust£¨£©¡¡£û£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Percussion3¡¡extends¡¡Instrument3¡¡£û¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡166¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡168¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Percussion3¡£play£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡String¡¡what£¨£©¡¡£û¡¡return¡¡¡¨Percussion3¡¨£»¡¡£ý¡¡¡¡
¡¡¡¡public¡¡void¡¡adjust£¨£©¡¡£û£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Stringed3¡¡extends¡¡Instrument3¡¡£û¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Stringed3¡£play£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡String¡¡what£¨£©¡¡£û¡¡return¡¡¡¨Stringed3¡¨£»¡¡£ý¡¡¡¡
¡¡¡¡public¡¡void¡¡adjust£¨£©¡¡£û£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Brass3¡¡extends¡¡Wind3¡¡£û¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Brass3¡£play£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡void¡¡adjust£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Brass3¡£adjust£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Woodwind3¡¡extends¡¡Wind3¡¡£û¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Woodwind3¡£play£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡String¡¡what£¨£©¡¡£û¡¡return¡¡¡¨Woodwind3¡¨£»¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
public¡¡class¡¡Music3¡¡£û¡¡¡¡
¡¡¡¡//¡¡Doesn't¡¡care¡¡about¡¡type£»¡¡so¡¡new¡¡types¡¡¡¡
¡¡¡¡//¡¡added¡¡to¡¡the¡¡system¡¡still¡¡work¡¡right£º¡¡¡¡
¡¡¡¡static¡¡void¡¡tune£¨Instrument3¡¡i£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡¡£¡£¡£¡¡¡¡
¡¡¡¡¡¡¡¡i¡£play£¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡static¡¡void¡¡tuneAll£¨Instrument3£§£§¡¡e£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡e¡£length£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡tune£¨e£§i£§£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡Instrument3£§£§¡¡orchestra¡¡=¡¡new¡¡Instrument3£§5£§£»¡¡¡¡
¡¡¡¡¡¡¡¡int¡¡i¡¡=¡¡0£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Upcasting¡¡during¡¡addition¡¡to¡¡the¡¡array£º¡¡¡¡
¡¡¡¡¡¡¡¡orchestra£§i£«£«£§¡¡=¡¡new¡¡Wind3£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡orchestra£§i£«£«£§¡¡=¡¡new¡¡Percussion3£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡orchestra£§i£«£«£§¡¡=¡¡new¡¡Stringed3£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡orchestra£§i£«£«£§¡¡=¡¡new¡¡Brass3£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡orchestra£§i£«£«£§¡¡=¡¡new¡¡Woodwind3£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡tuneAll£¨orchestra£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡167¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡169¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
з½·¨ÊÇwhat£¨£©ºÍadjust£¨£©¡¡¡£Ç°Õß·µ»ØÒ»¸öString¡¡¾ä±ú£¬Í¬Ê±·µ»Ø¶ÔÄǸöÀàµÄ˵Ã÷£»ºóÕßʹÎÒÃÇÄܶÔÿÖÖ¡¡
ÀÖÆ÷½øÐе÷Õû¡£¡¡¡¡
ÔÚmain£¨£©ÖУ¬µ±ÎÒÃǽ«Ä³Ñù¶«Î÷ÖÃÈëInstrument3Êý×éʱ£¬¾Í»á×Ô¶¯ÉÏËÝÔìÐ͵½¡¡Instrument3¡£¡¡¡¡
¿ÉÒÔ¿´µ½£¬ÔÚΧÈÆ¡¡tune£¨£©·½·¨µÄÆäËûËùÓдúÂ붼·¢Éú±ä»¯µÄͬʱ£¬tune£¨£©·½·¨È´Ë¿ºÁ²»ÊÜËüÃǵÄÓ°Ï죬ÒÀÈ»¡¡
¹ÊÎÒµØÕý³£¹¤×÷¡£ÕâÕýÊÇÀûÓöàÐÎÐÔÏ£Íû´ïµ½µÄÄ¿±ê¡£ÎÒÃǶԴúÂë½øÐÐÐ޸ĺ󣬲»»á¶Ô³ÌÐòÖв»Ó¦Êܵ½Ó°Ïì¡¡
µÄ²¿·ÖÔì³ÉÓ°Ïì¡£´ËÍ⣬ÎÒÃÇÈÏΪ¶àÐÎÐÔÊÇÒ»ÖÖÖÁ¹ØÖØÒªµÄ¼¼Êõ£¬ËüÔÊÐí³ÌÐòÔ±¡°½«·¢Éú¸Ä±äµÄ¶«Î÷ͬûÓС¡
·¢Éú¸Ä±äµÄ¶«Î÷Çø·Ö¿ª¡±¡£¡¡¡¡
7¡£3¡¡¸²¸ÇÓë¹ýÔØ¡¡¡¡
ÏÖÔÚÈÃÎÒÃÇÓò»Í¬µÄÑÛ¹âÀ´¿´¿´±¾ÕµÄÍ·Ò»¸öÀý×Ó¡£ÔÚÏÂÃæÕâ¸ö³ÌÐòÖУ¬·½·¨play£¨£©µÄ½Ó¿Ú»áÔÚ±»¸²¸ÇµÄ¹ý¡¡
³ÌÖз¢Éú±ä»¯¡£ÕâÒâζ×ÅÎÒÃÇʵ¼Ê²¢Ã»ÓС°¸²¸Ç¡±·½·¨£¬¶øÊÇʹÆä¡°¹ýÔØ¡±¡£±àÒëÆ÷ÔÊÐíÎÒÃǶԷ½·¨½øÐйý¡¡
ÔØ´¦Àí£¬Ê¹Æä²»±¨¸æ³ö´í¡£µ«ÕâÖÖÐÐΪ¿ÉÄܲ¢²»ÊÇÎÒÃÇËùÏ£ÍûµÄ¡£ÏÂÃæÊÇÕâ¸öÀý×Ó£º¡¡¡¡
¡¡¡¡
//£º¡¡WindError¡£java¡¡¡¡¡¡
//¡¡Accidentally¡¡changing¡¡the¡¡interface¡¡¡¡
¡¡¡¡
class¡¡NoteX¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡final¡¡int¡¡¡¡
¡¡¡¡¡¡¡¡MIDDLE_C¡¡=¡¡0£»¡¡C_SHARP¡¡=¡¡1£»¡¡C_FLAT¡¡=¡¡2£»¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡InstrumentX¡¡£û¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨int¡¡NoteX£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨InstrumentX¡£play£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡WindX¡¡extends¡¡InstrumentX¡¡£û¡¡¡¡
¡¡¡¡//¡¡OOPS£¡¡¡Changes¡¡the¡¡method¡¡interface£º¡¡¡¡
¡¡¡¡public¡¡void¡¡play£¨NoteX¡¡n£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨WindX¡£play£¨NoteX¡¡n£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
public¡¡class¡¡WindError¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡tune£¨InstrumentX¡¡i£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡¡£¡£¡£¡¡¡¡
¡¡¡¡¡¡¡¡i¡£play£¨NoteX¡£MIDDLE_C£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡WindX¡¡flute¡¡=¡¡new¡¡WindX£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡tune£¨flute£©£»¡¡//¡¡Not¡¡the¡¡desired¡¡behavior£¡¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
ÕâÀﻹÏò´ó¼ÒÒýÈëÁËÁíÒ»¸öÒ×ÓÚ»ìÏýµÄ¸ÅÄî¡£ÔÚ¡¡InstrumentX¡¡ÖУ¬play£¨£©·½·¨²ÉÓÃÁËÒ»¸ö¡¡int¡¡£¨ÕûÊý£©Êý¡¡
Öµ£¬ËüµÄ±êʶ·ûÊÇNoteX¡£Ò²¾ÍÊÇ˵£¬¼´Ê¹NoteX¡¡ÊÇÒ»¸öÀàÃû£¬Ò²¿ÉÒÔ°ÑËü×÷Ϊһ¸ö±êʶ·ûʹÓ㬱àÒëÆ÷²»¡¡
»á±¨¸æ³ö´í¡£µ«ÔÚWindX¡¡ÖУ¬play£¨£©²ÉÓÃÒ»¸öNoteX¡¡¾ä±ú£¬ËüÓÐÒ»¸ö±êʶ·û¡¡n¡£¼´±ãÎÒÃÇʹÓá°play£¨NoteX¡¡¡¡
NoteX£©¡±£¬±àÒëÆ÷Ò²²»»á±¨¸æ´íÎó¡£ÕâÑùÒ»À´£¬¿´ÆðÀ´¾ÍÏóÊdzÌÐòÔ±ÓÐÒ⸲¸Çplay£¨£©µÄ¹¦ÄÜ£¬µ«¶Ô·½·¨µÄÀà¡¡
ÐͶ¨ÒåÈ´ÉÔ΢ÓÐЩ²»È·ÇС£È»¶ø£¬±àÒëÆ÷´Ëʱ¼Ù¶¨µÄÊdzÌÐòÔ±ÓÐÒâ½øÐС°¹ýÔØ¡±£¬¶ø·Ç¡°¸²¸Ç¡±¡£Çë×ÐϸÌå¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡168¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡170¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
»áÕâÁ½¸öÊõÓïµÄÇø±ð¡£¡°¹ýÔØ¡±ÊÇָͬһÑù¶«Î÷ÔÚ²»Í¬µÄµØ·½¾ßÓжàÖÖº¬Ò壻¶ø¡°¸²¸Ç¡±ÊÇÖ¸ËüËæʱËæµØ¶¼¡¡
Ö»ÓÐÒ»ÖÖº¬Ò壬ֻÊÇÔÏȵĺ¬ÒåÍêÈ«±»ºóÀ´µÄº¬ÒåÈ¡´úÁË¡£Çë×¢ÒâÈç¹û×ñÊرê×¼µÄJava¡¡ÃüÃû¹æ·¶£¬×Ô±äÁ¿±ê¡¡
ʶ·û¾ÍÓ¦¸ÃÊÇnoteX£¬ÕâÑù¿É°ÑËüÓëÀàÃûÇø·Ö¿ª¡£¡¡¡¡
ÔÚ¡¡tune¡¡ÖУ¬¡°InstrumentX¡¡i¡¡¡±»á·¢³öplay£¨£©ÏûÏ¢£¬Í¬Ê±½«Ä³¸ö¡¡NoteX¡¡³ÉÔ±×÷Ϊ×Ô±äÁ¿Ê¹Óã¨MIDDLE_C£©¡£¡¡
ÓÉÓÚNoteX¡¡°üº¬ÁË¡¡int¡¡¶¨Ò壬¹ýÔصÄplay£¨£©·½·¨µÄ¡¡int¡¡°æ±¾»áµÃµ½µ÷Óá£Í¬Ê±ÓÉÓÚËüÉÐδ±»¡°¸²¸Ç¡±£¬ËùÒÔ¡¡
»áʹÓûù´¡Àà°æ±¾¡£¡¡¡¡
Êä³öÊÇ£º¡¡¡¡
InstrumentX¡£play£¨£©¡¡¡¡
7¡£4¡¡³éÏóÀàºÍ·½·¨¡¡¡¡
ÔÚÎÒÃÇËùÓÐÀÖÆ÷£¨Instrument£©Àý×ÓÖУ¬»ù´¡Àà¡¡Instrument¡¡Äڵķ½·¨¶¼¿Ï¶¨ÊÇ¡°Î±¡±·½·¨¡£ÈôÈ¥µ÷ÓÃÕâЩ·½¡¡
·¨£¬¾Í»á³öÏÖ´íÎó¡£ÄÇÊÇÓÉÓÚ¡¡Instrument¡¡µÄÒâͼÊÇΪ´ÓËüÑÜÉú³öÈ¥µÄËùÓÐÀ඼´´½¨Ò»¸öͨÓýӿڡ£¡¡¡¡
Ö®ËùÒÔÒª½¨Á¢Õâ¸öͨÓýӿڣ¬Î¨Ò»µÄÔÒò¾ÍÊÇËüÄÜΪ²»Í¬µÄ×ÓÀàÐÍ×÷³ö²»Í¬µÄ±íʾ¡£ËüΪÎÒÃǽ¨Á¢ÁËÒ»ÖÖ»ù¡¡
±¾ÐÎʽ£¬Ê¹ÎÒÃÇÄܶ¨ÒåÔÚËùÓÐÑÜÉúÀàÀͨÓá±µÄһЩ¶«Î÷¡£Îª²ûÊöÕâ¸ö¹ÛÄÁíÒ»¸ö·½·¨ÊÇ°Ñ¡¡Instrument¡¡
³ÆΪ¡°³éÏó»ù´¡Àࡱ£¨¼ò³Æ¡°³éÏóÀࡱ£©¡£ÈôÏëͨ¹ý¸ÃͨÓýӿڴ¦ÀíһϵÁÐÀ࣬¾ÍÐèÒª´´½¨Ò»¸ö³éÏóÀà¡£¶Ô¡¡
ËùÓÐÓë»ù´¡ÀàÉùÃ÷µÄÇ©ÃûÏà·ûµÄÑÜÉúÀà·½·¨£¬¶¼¿ÉÒÔͨ¹ý¶¯Ì¬°ó¶¨»úÖƽøÐе÷Óã¨È»¶ø£¬ÕýÈçÉÏÒ»½ÚÖ¸³öµÄ¡¡
ÄÇÑù£¬Èç¹û·½·¨ÃûÓë»ù´¡ÀàÏàͬ£¬µ«×Ô±äÁ¿»ò²ÎÊý²»Í¬£¬¾Í»á³öÏÖ¹ýÔØÏÖÏó£¬ÄÇ»òÐí²¢·ÇÎÒÃÇËùÔ¸ÒâµÄ£©¡£¡¡¡¡
Èç¹ûÓÐÒ»¸öÏó¡¡Instrument¡¡ÄÇÑùµÄ³éÏóÀ࣬ÄǸöÀàµÄ¶ÔÏ󼸺õ¿Ï¶¨Ã»ÓÐʲôÒâÒå¡£»»ÑÔÖ®£¬Instrument¡¡µÄ×÷¡¡
Óýö½öÊDZí´ï½Ó¿Ú£¬¶ø²»ÊDZí´ïһЩ¾ßÌåµÄʵʩϸ½Ú¡£ËùÒÔ´´½¨Ò»¸ö¡¡Instrument¡¡¶ÔÏóÊÇûÓÐÒâÒåµÄ£¬¶øÇÒÎÒ¡¡
ÃÇͨ³£¶¼Ó¦½ûÖ¹Óû§ÄÇÑù×ö¡£Îª´ïµ½Õâ¸öÄ¿µÄ£¬¿ÉÁî¡¡Instrument¡¡ÄÚµÄËùÓз½·¨¶¼ÏÔʾ³ö´íÏûÏ¢¡£µ«ÕâÑù×ö»á¡¡
ÑÓ³ÙÐÅÏ¢µ½ÔËÐÐÆÚ£¬²¢ÒªÇóÔÚÓû§ÄÇÒ»Ãæ½øÐг¹µ×¡¢¿É¿¿µÄ²âÊÔ¡£ÎÞÂÛÈçºÎ£¬×îºÃµÄ·½·¨¶¼ÊÇÔÚ±àÒëÆڼ䲶¡¡
×½µ½ÎÊÌâ¡£¡¡¡¡
Õë¶ÔÕâ¸öÎÊÌ⣬Java¡¡×¨ÃÅÌṩÁËÒ»ÖÖ»úÖÆ£¬ÃûΪ¡°³éÏó·½·¨¡±¡£ËüÊôÓÚÒ»ÖÖ²»ÍêÕûµÄ·½·¨£¬Ö»º¬ÓÐÒ»¸öÉù¡¡
Ã÷£¬Ã»Óз½·¨Ö÷Ìå¡£ÏÂÃæÊdzéÏó·½·¨ÉùÃ÷ʱ²ÉÓõÄÓï·¨£º¡¡¡¡
abstract¡¡void¡¡X£¨£©£»¡¡¡¡
°üº¬Á˳éÏó·½·¨µÄÒ»¸öÀà½Ð×÷¡°³éÏóÀࡱ¡£Èç¹ûÒ»¸öÀàÀï°üº¬ÁËÒ»¸ö»ò¶à¸ö³éÏó·½·¨£¬Àà¾Í±ØÐëÖ¸¶¨³É¡¡
abstract¡¡£¨³éÏ󣩡£·ñÔò£¬±àÒëÆ÷»áÏòÎÒÃDZ¨¸æÒ»Ìõ³ö´íÏûÏ¢¡£¡¡¡¡
ÈôÒ»¸ö³éÏóÀàÊDz»ÍêÕûµÄ£¬ÄÇôһµ©ÓÐÈËÊÔͼÉú³ÉÄǸöÀàµÄÒ»¸ö¶ÔÏ󣬱àÒëÆ÷ÓÖ»á²ÉȡʲôÐж¯ÄØ£¿ÓÉÓÚ²»¡¡
ÄÜ°²È«µØΪһ¸ö³éÏóÀà´´½¨ÊôÓÚËüµÄ¶ÔÏó£¬ËùÒÔ»á´Ó±àÒëÆ÷ÄÇÀï»ñµÃÒ»Ìõ³ö´íÌáʾ¡£Í¨¹ýÕâÖÖ·½·¨£¬±àÒëÆ÷¡¡
¿É±£Ö¤³éÏóÀàµÄ¡°´¿½àÐÔ¡±£¬ÎÒÃDz»±Øµ£ÐÄ»áÎóÓÃËü¡£¡¡¡¡
Èç¹û´ÓÒ»¸ö³éÏóÀà¼Ì³Ð£¬¶øÇÒÏëÉú³ÉÐÂÀàÐ͵ÄÒ»¸ö¶ÔÏ󣬾ͱØÐëΪ»ù´¡ÀàÖеÄËùÓгéÏó·½·¨Ìṩ·½·¨¶¨Òå¡£¡¡
Èç¹û²»ÕâÑù×ö£¨ÍêÈ«¿ÉÒÔÑ¡Ôñ²»×ö£©£¬ÔòÑÜÉúÀàÒ²»áÊdzéÏóµÄ£¬¶øÇÒ±àÒëÆ÷»áÇ¿ÆÈÎÒÃÇÓÃabstract¡¡¹Ø¼ü×ֱꡡ
Ö¾ÄǸöÀàµÄ¡°³éÏó¡±±¾ÖÊ¡£¡¡¡¡
¼´Ê¹²»°üÀ¨ÈκÎabstract¡¡·½·¨£¬Òà¿É½«Ò»¸öÀàÉùÃ÷³É¡°³éÏóÀࡱ¡£Èç¹ûÒ»¸öÀàû±ØÒªÓµÓÐÈκγéÏó·½·¨£¬¶ø¡¡
ÇÒÎÒÃÇÏë½ûÖ¹ÄǸöÀàµÄËùÓÐʵÀý£¬ÕâÖÖÄÜÁ¦¾Í»áÏԵ÷dz£ÓÐÓᣡ¡¡¡
InstrumentÀà¿ÉºÜÇáËɵØת»»³ÉÒ»¸ö³éÏóÀà¡£Ö»ÓÐÆäÖÐÒ»²¿·Ö·½·¨»á±ä³É³éÏó·½·¨£¬ÒòΪʹһ¸öÀà³éÏóÒÔ¡¡
ºó£¬²¢²»»áÇ¿ÆÈÎÒÃǽ«ËüµÄËùÓз½·¨¶¼Í¬Ê±±ä³É³
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾Ñé½±Àø£¬ÈÏÕæдԴ´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾Ñé½±ÀøŶ£¡