°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÏÂÒ»½Ú¾ßÌå˵Ã÷¡£¡¡¡¡
7¡£7¡£2¡¡¡¡¼Ì³ÐºÍ¡¡finalize£¨£©¡¡¡¡¡¡
ͨ¹ý¡°ºÏ³É¡±·½·¨´´½¨ÐÂÀàʱ£¬ÓÀÔ¶²»±Øµ£ÐĶÔÄǸöÀàµÄ³ÉÔ±¶ÔÏóµÄÊÕβ¹¤×÷¡£Ã¿¸ö³ÉÔ±¶¼ÊÇÒ»¸ö¶ÀÁ¢µÄ¶Ô¡¡
Ïó£¬ËùÒÔ»áµÃµ½Õý³£µÄÀ¬»øÊÕ¼¯ÒÔ¼°ÊÕβ´¦Àí¡ª¡ªÎÞÂÛËüÊDz»ÊDz»×Ô¼ºÄ³¸öÀàÒ»¸ö³ÉÔ±¡£µ«ÔÚ½øÐгõʼ»¯µÄ¡¡
ʱºò£¬±ØÐ븲¸ÇÑÜÉúÀàÖеÄfinalize£¨£©·½·¨¡ª¡ªÈç¹ûÒѾÉè¼ÆÁËij¸öÌØÊâµÄÇå³ý½ø³Ì£¬ÒªÇóËü±ØÐë×÷ΪÀ¬»ø¡¡
ÊÕ¼¯µÄÒ»²¿·Ö½øÐС£¸²¸ÇÑÜÉúÀàµÄ¡¡finalize£¨£©Ê±£¬Îñ±Ø¼Çסµ÷Óá¡finalize£¨£©µÄ»ù´¡Àà°æ±¾¡£·ñÔò£¬»ù´¡ÀàµÄ¡¡
³õʼ»¯¸ù±¾²»»á·¢Éú¡£ÏÂÃæÕâ¸öÀý×Ó±ãÊÇÃ÷Ö¤£º¡¡¡¡
¡¡¡¡
//£º¡¡Frog¡£java¡¡¡¡
//¡¡Testing¡¡finalize¡¡with¡¡inheritance¡¡¡¡
¡¡¡¡
class¡¡DoBaseFinalization¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡boolean¡¡flag¡¡=¡¡false£»¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡199¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡201¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
class¡¡Characteristic¡¡£û¡¡¡¡
¡¡¡¡String¡¡s£»¡¡¡¡
¡¡¡¡Characteristic£¨String¡¡c£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡s¡¡=¡¡c£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨Creating¡¡Characteristic¡¡¡¨¡¡£«¡¡s£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡protected¡¡void¡¡finalize£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨finalizing¡¡Characteristic¡¡¡¨¡¡£«¡¡s£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡LivingCreature¡¡£û¡¡¡¡
¡¡¡¡Characteristic¡¡p¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡new¡¡Characteristic£¨¡¨is¡¡alive¡¨£©£»¡¡¡¡
¡¡¡¡LivingCreature£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨LivingCreature£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡protected¡¡void¡¡finalize£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨LivingCreature¡¡finalize¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Call¡¡base¡class¡¡version¡¡LAST£¡¡¡¡¡
¡¡¡¡¡¡¡¡if£¨DoBaseFinalization¡£flag£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡super¡£finalize£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch£¨Throwable¡¡t£©¡¡£û£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Animal¡¡extends¡¡LivingCreature¡¡£û¡¡¡¡
¡¡¡¡Characteristic¡¡p¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡new¡¡Characteristic£¨¡¨has¡¡heart¡¨£©£»¡¡¡¡
¡¡¡¡Animal£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Animal£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡protected¡¡void¡¡finalize£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Animal¡¡finalize¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡if£¨DoBaseFinalization¡£flag£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡super¡£finalize£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch£¨Throwable¡¡t£©¡¡£û£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡Amphibian¡¡extends¡¡Animal¡¡£û¡¡¡¡
¡¡¡¡Characteristic¡¡p¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡new¡¡Characteristic£¨¡¨can¡¡live¡¡in¡¡water¡¨£©£»¡¡¡¡
¡¡¡¡Amphibian£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Amphibian£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡protected¡¡void¡¡finalize£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡200¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡202¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Amphibian¡¡finalize¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡if£¨DoBaseFinalization¡£flag£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡super¡£finalize£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch£¨Throwable¡¡t£©¡¡£û£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
public¡¡class¡¡Frog¡¡extends¡¡Amphibian¡¡£û¡¡¡¡
¡¡¡¡Frog£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Frog£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡protected¡¡void¡¡finalize£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Frog¡¡finalize¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡if£¨DoBaseFinalization¡£flag£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡super¡£finalize£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch£¨Throwable¡¡t£©¡¡£û£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡if£¨args¡£length¡¡£¡=¡¡0¡¡&&¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡args£§0£§¡£equals£¨¡¨finalize¡¨£©£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡DoBaseFinalization¡£flag¡¡=¡¡true£»¡¡¡¡
¡¡¡¡¡¡¡¡else¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨not¡¡finalizing¡¡bases¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡new¡¡Frog£¨£©£»¡¡//¡¡Instantly¡¡bees¡¡garbage¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨bye£¡¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Must¡¡do¡¡this¡¡to¡¡guarantee¡¡that¡¡all¡¡¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡finalizers¡¡will¡¡be¡¡called£º¡¡¡¡
¡¡¡¡¡¡¡¡System¡£runFinalizersOnExit£¨true£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
DoBasefinalization¡¡ÀàÖ»ÊǼòµ¥µØÈÝÄÉÁËÒ»¸ö±êÖ¾£¬Ïò·Ö¼¶½á¹¹ÖеÄÿ¸öÀàÖ¸³öÊÇ·ñÓ¦µ÷Óá¡
super¡£finalize£¨£©¡£Õâ¸ö±êÖ¾µÄÉèÖý¨Á¢ÔÚÃüÁîÐвÎÊýµÄ»ù´¡ÉÏ£¬ËùÒÔÄܹ»ÔÚ½øÐкͲ»½øÐлù´¡ÀàÊÕβ¹¤×÷¡¡
µÄÇ°Ìáϲ鿴ÐÐΪ¡£¡¡¡¡
·Ö¼¶½á¹¹ÖеÄÿ¸öÀàÒ²°üº¬ÁË¡¡Characteristic¡¡ÀàµÄÒ»¸ö³ÉÔ±¶ÔÏó¡£´ó¼Ò¿ÉÒÔ¿´µ½£¬ÎÞÂÛÊÇ·ñµ÷ÓÃÁË»ù´¡ÀàÊÕ¡¡
βģ¿é£¬Characteristic¡¡³ÉÔ±¶ÔÏ󶼿϶¨»áµÃµ½ÊÕ⣨Çå³ý£©´¦Àí¡£¡¡¡¡
ÿ¸ö±»¸²¸ÇµÄfinalize£¨£©ÖÁÉÙÒªÓµÓжԡ¡protected¡¡³ÉÔ±µÄ·ÃÎÊȨÁ¦£¬ÒòΪ¡¡Object¡¡ÀàÖеÄfinalize£¨£©·½·¨¾ß¡¡
ÓÐprotected¡¡ÊôÐÔ£¬¶ø±àÒëÆ÷²»ÔÊÐíÎÒÃÇÔڼ̳йý³ÌÖÐÏû³ý·ÃÎÊȨÏÞ£¨¡°ÓѺõġ±±È¡°Êܵ½±£»¤µÄ¡±¾ßÓиü¡¡
СµÄ·ÃÎÊȨÏÞ£©¡£¡¡¡¡
ÔÚFrog¡£main£¨£©ÖУ¬DoBaseFinalization¡¡±êÖ¾»áµÃµ½ÅäÖ㬶øÇһᴴ½¨µ¥¶ÀÒ»¸öFrog¡¡¶ÔÏó¡£Çë¼ÇסÀ¬»øÊÕ¼¯¡¡
¡¡£¨ÌرðÊÇÊÕβ¹¤×÷£©¿ÉÄܲ»»áÕë¶ÔÈκÎÌض¨µÄ¶ÔÏó·¢Éú£¬ËùÒÔΪÁËÇ¿ÖƲÉÈ¡ÕâÒ»Ðж¯£¬¡¡
System¡£runFinalizersOnExit£¨true£©Ìí¼ÓÁ˶îÍâµÄ¿ªÏú£¬ÒÔ±£Ö¤ÊÕβ¹¤×÷µÄÕý³£½øÐС£ÈôûÓлù´¡Àà³õʼ¡¡
»¯£¬ÔòÊä³ö½á¹ûÊÇ£º¡¡¡¡
¡¡¡¡
not¡¡finalizing¡¡bases¡¡¡¡
Creating¡¡Characteristic¡¡is¡¡alive¡¡¡¡
LivingCreature£¨£©¡¡¡¡
Creating¡¡Characteristic¡¡has¡¡heart¡¡¡¡
Animal£¨£©¡¡¡¡
Creating¡¡Characteristic¡¡can¡¡live¡¡in¡¡water¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡201¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡203¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Amphibian£¨£©¡¡¡¡
Frog£¨£©¡¡¡¡
bye£¡¡¡¡¡
Frog¡¡finalize¡¡¡¡
finalizing¡¡Characteristic¡¡is¡¡alive¡¡¡¡
finalizing¡¡Characteristic¡¡has¡¡heart¡¡¡¡
finalizing¡¡Characteristic¡¡can¡¡live¡¡in¡¡water¡¡¡¡
¡¡¡¡
´ÓÖпÉÒÔ¿´³öȷʵûÓÐΪ»ù´¡ÀàFrog¡¡µ÷ÓÃÊÕβģ¿é¡£µ«¼ÙÈçÔÚÃüÁîÐмÓÈë¡°finalize¡±×Ô±äÁ¿£¬Ôò»á»ñµÃÏ¡¡
Êö½á¹û£º¡¡¡¡
¡¡¡¡
Creating¡¡Characteristic¡¡is¡¡alive¡¡¡¡
LivingCreature£¨£©¡¡¡¡
Creating¡¡Characteristic¡¡has¡¡heart¡¡¡¡
Animal£¨£©¡¡¡¡
Creating¡¡Characteristic¡¡can¡¡live¡¡in¡¡water¡¡¡¡
Amphibian£¨£©¡¡¡¡
Frog£¨£©¡¡¡¡
bye£¡¡¡¡¡
Frog¡¡finalize¡¡¡¡
Amphibian¡¡finalize¡¡¡¡
Animal¡¡finalize¡¡¡¡
LivingCreature¡¡finalize¡¡¡¡
finalizing¡¡Characteristic¡¡is¡¡alive¡¡¡¡
finalizing¡¡Characteristic¡¡has¡¡heart¡¡¡¡
finalizing¡¡Characteristic¡¡can¡¡live¡¡in¡¡water¡¡¡¡
¡¡¡¡
¾¡¹Ü³ÉÔ±¶ÔÏó°´ÕÕÓëËüÃÇ´´½¨Ê±ÏàͬµÄ˳Ðò½øÐÐÊÕ⣬µ«´Ó¼¼Êõ½Ç¶È˵£¬²¢Ã»ÓÐÖ¸¶¨¶ÔÏóÊÕβµÄ˳Ðò¡£µ«¶Ô¡¡
ÓÚ»ù´¡À࣬ÎÒÃǿɶÔÊÕβµÄ˳Ðò½øÐпØÖÆ¡£²ÉÓõÄ×î¼Ñ˳ÐòÕýÊÇÔÚÕâÀï²ÉÓõÄ˳Ðò£¬ËüÓë³õʼ»¯Ë³ÐòÕýºÃÏà¡¡
·´¡£°´ÕÕÓë¡¡C£«£«ÖÐÓÃÓÚ¡°ÆÆ»µÆ÷¡±ÏàͬµÄÐÎʽ£¬ÎÒÃÇÓ¦¸ÃÊ×ÏÈÖ´ÐÐÑÜÉúÀàµÄÊÕ⣬ÔÙÊÇ»ù´¡ÀàµÄÊÕβ¡£ÕâÊÇ¡¡
ÓÉÓÚÑÜÉúÀàµÄÊÕβ¿ÉÄܵ÷Óûù´¡ÀàÖÐÏàͬµÄ·½·¨£¬ÒªÇó»ù´¡Àà×é¼þÈÔÈ»´¦Óڻ״̬¡£Òò´Ë£¬±ØÐëÌáÇ°½«Ëü¡¡
ÃÇÇå³ý£¨ÆÆ»µ£©¡£¡¡¡¡
7¡£7¡£3¡¡¡¡¹¹½¨Æ÷ÄÚ²¿µÄ¶àÐÎÐÔ·½·¨µÄÐÐΪ¡¡¡¡
¹¹½¨Æ÷µ÷Óõķּ¶½á¹¹£¨Ë³Ðò£©ÎªÎÒÃÇ´øÀ´ÁËÒ»¸öÓÐȤµÄÎÊÌ⣬»òÕß˵ÈÃÎÒÃǽøÈëÁËÒ»ÖÖ½øÍËÁ½ÄѵľÖÃæ¡£¡¡
Èôµ±Ç°Î»ÓÚÒ»¸ö¹¹½¨Æ÷µÄÄÚ²¿£¬Í¬Ê±µ÷ÓÃ×¼±¸¹¹½¨µÄÄǸö¶ÔÏóµÄÒ»¸ö¶¯Ì¬°ó¶¨·½·¨£¬ÄÇô»á³öÏÖʲôÇé¿ö¡¡
ÄØ£¿ÔÚÔʼµÄ·½·¨ÄÚ²¿£¬ÎÒÃÇÍêÈ«¿ÉÒÔÏëÏó»á·¢Éúʲô¡ª¡ª¶¯Ì¬°ó¶¨µÄµ÷ÓûáÔÚÔËÐÐÆÚ¼ä½øÐнâÎö£¬ÒòΪ¶Ô¡¡
Ïó²»ÖªµÀËüµ½µ×´ÓÊôÓÚ·½·¨ËùÔÚµÄÄǸöÀ࣬»¹ÊÇ´ÓÊôÓÚ´ÓËüÑÜÉú³öÀ´µÄijЩÀࡣΪ±£³ÖÒ»ÖÂÐÔ£¬´ó¼ÒÒ²Ðí»á¡¡
ÈÏΪÕâÓ¦¸ÃÔÚ¹¹½¨Æ÷ÄÚ²¿·¢Éú¡£¡¡¡¡
µ«Êµ¼ÊÇé¿ö²¢·ÇÍêÈ«Èç´Ë¡£Èôµ÷Óù¹½¨Æ÷ÄÚ²¿Ò»¸ö¶¯Ì¬°ó¶¨µÄ·½·¨£¬»áʹÓÃÄǸö·½·¨±»¸²¸ÇµÄ¶¨Ò塣Ȼ¶ø£¬¡¡
²úÉúµÄЧ¹û¿ÉÄܲ¢²»ÈçÎÒÃÇËùÔ¸£¬¶øÇÒ¿ÉÄÜÔì³ÉһЩÄÑÓÚ·¢ÏֵijÌÐò´íÎ󡣡¡¡¡
´Ó¸ÅÄîÉϽ²£¬¹¹½¨Æ÷µÄÖ°ÔðÊÇÈöÔÏóʵ¼Ê½øÈë´æÔÚ״̬¡£ÔÚÈκι¹½¨Æ÷ÄÚ²¿£¬Õû¸ö¶ÔÏó¿ÉÄÜÖ»Êǵõ½²¿·Ö×é¡¡
Ö¯¡ª¡ªÎÒÃÇÖ»ÖªµÀ»ù´¡Àà¶ÔÏóÒѵõ½³õʼ»¯£¬µ«È´²»ÖªµÀÄÄЩÀàÒѾ¼Ì³Ð¡£È»¶ø£¬Ò»¸ö¶¯Ì¬°ó¶¨µÄ·½·¨µ÷Óá¡
È´»áÔÚ·Ö¼¶½á¹¹Àï¡°ÏòÇ°¡±»òÕß¡°ÏòÍ⡱ǰ½ø¡£Ëüµ÷ÓÃλÓÚÑÜÉúÀàÀïµÄÒ»¸ö·½·¨¡£Èç¹ûÔÚ¹¹½¨Æ÷ÄÚ²¿×öÕâ¼þ¡¡
ÊÂÇ飬ÄÇô¶ÔÓÚµ÷Óõķ½·¨£¬ËüÒª²Ù×ݵijÉÔ±¿ÉÄÜÉÐδµÃµ½ÕýÈ·µÄ³õʼ»¯¡ª¡ªÕâÏÔÈ»²»ÊÇÎÒÃÇËùÏ£ÍûµÄ¡£¡¡¡¡
ͨ¹ý¹Û²ìÏÂÃæÕâ¸öÀý×Ó£¬Õâ¸öÎÊÌâ±ã»áÕÑÈ»Èô½Ò£º¡¡¡¡
¡¡¡¡
//£º¡¡PolyConstructors¡£java¡¡¡¡
//¡¡Constructors¡¡and¡¡polymorphism¡¡¡¡
//¡¡don't¡¡produce¡¡what¡¡you¡¡might¡¡expect¡£¡¡¡¡
¡¡¡¡
abstract¡¡class¡¡Glyph¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡202¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡204¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡abstract¡¡void¡¡draw£¨£©£»¡¡¡¡
¡¡¡¡Glyph£¨£©¡¡¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Glyph£¨£©¡¡before¡¡draw£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡draw£¨£©£»¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Glyph£¨£©¡¡after¡¡draw£¨£©¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
class¡¡RoundGlyph¡¡extends¡¡Glyph¡¡£û¡¡¡¡
¡¡¡¡int¡¡radius¡¡=¡¡1£»¡¡¡¡
¡¡¡¡RoundGlyph£¨int¡¡r£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡radius¡¡=¡¡r£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨RoundGlyph¡£RoundGlyph£¨£©£»¡¡radius¡¡=¡¡¡¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£«¡¡radius£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡void¡¡draw£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨RoundGlyph¡£draw£¨£©£»¡¡radius¡¡=¡¡¡¨¡¡£«¡¡radius£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
public¡¡class¡¡PolyConstructors¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡new¡¡RoundGlyph£¨5£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
ÔÚGlyph¡¡ÖУ¬draw£¨£©·½·¨ÊÇ¡°³éÏóµÄ¡±£¨abstract¡¡£©£¬ËùÒÔËü¿ÉÒÔ±»ÆäËû·½·¨¸²¸Ç¡£ÊÂʵÉÏ£¬ÎÒÃÇÔÚ¡¡
RoundGlyph¡¡Öв»µÃ²»¶ÔÆä½øÐи²¸Ç¡£µ«Glyph¡¡¹¹½¨Æ÷»áµ÷ÓÃÕâ¸ö·½·¨£¬¶øÇÒµ÷ÓûáÔÚRoundGlyph¡£draw£¨£©ÖС¡
Ö¹£¬Õâ¿´ÆðÀ´ËƺõÊÇÓÐÒâµÄ¡£µ«Çë¿´¿´Êä³ö½á¹û£º¡¡¡¡
¡¡¡¡
Glyph£¨£©¡¡before¡¡draw£¨£©¡¡¡¡
RoundGlyph¡£draw£¨£©£»¡¡radius¡¡=¡¡0¡¡¡¡
Glyph£¨£©¡¡after¡¡draw£¨£©¡¡¡¡
RoundGlyph¡£RoundGlyph£¨£©£»¡¡radius¡¡=¡¡5¡¡¡¡
¡¡¡¡
µ±Glyph¡¡µÄ¹¹½¨Æ÷µ÷ÓÃdraw£¨£©Ê±£