Óû§Ãû£ºÎÞÃûÊÏV199
ÕâÎÊ´ð¸öÊÇÎÒºÜÔç֮ǰѧϰµ½¡°¶à̬¡±Ê±ºòÕûÀíµÄ±Ê¼Ç¡£
ËÍÄãÁË£¡¼ò±ÈÏ£Íû¶ÔÄãÓÐÓã¡
J**aµÄ¶àÇÖ¶þÍ£µØÂýÏØ×èÐÞÔÙ̬ÐÔ
ÃæÏò¶ÔÏó±à³ÌÓÐÈý¸öÌØÕ÷Ö÷ÃŵÆÒ¶Íê¼Û×÷»Æ¼¾´¡²Æ£¬¼´·â×°¡¢¼Ì³ÐºÍ¶à̬¡£
·â×°Òþ²ØÁËÀàµÄ**ʵÏÖ»úÖÆ£¬´Ó¶ø¿ÉÒÔÔÚ²»Ó°ÏìʹÓÃÕßµÄÇ°ÌáϸıäÀàµÄ**½á¹¹£¬Í¬Ê±±£»¤ÁË**¡£
¼Ì³ÐÊÇΪÁËÖØÓø¸Àà´úÂ룬ͬʱΪʵÏÖ¶à̬ÐÔ×÷×¼±¸¡£ÄÇôʲôÊǶà̬ÄØ£¿
·½·¨µÄÖØд¡¢ÖØÔØÓ붯̬Á¬½Ó¹¹³ÉÓɼùÀ䶽ÔÓ¶à̬ÐÔ¡£J**aÖ®ËùÒÔÒýÈë¶à̬µÄ¸ÅÄÔÒòÖ®Ò»ÊÇËüÔÚÀàµÄ¼Ì³ÐÎÊÌâÉϺÍC++²»Í¬£¬ºóÕßÔÊÐí¶à¼Ì³Ð£¬Õâȷʵ¸øÆä´øÀ´µÄ·Ç³£Ç¿´óµÄ¹¦ÄÜ£¬µ«ÊǸ´Ôӵļ̳йØϵҲ¸øC++¿ª·¢Õß´øÀ´Á˸ü´óµÄÂé·³£¬ÎªÁ˹æ±Ü·çÏÕ£¬J**aÖ»ÔÊÐíµ¥¼Ì³Ð×ÅÓã¿Í£¬ÅÉÉúÀàÓë»ùÀà¼äÓÐIS-AÅ®¾ÓµÄ¹Øϵ£¨¼´¡°Ã¨¡±isa¡°¶¯Î£©¡£ÕâÑù×öËäÈ»±£Á˼̳йØϵµÄ¼òµ¥Ã÷ÁË£¬µ«ÊÇÊƱØÔÚ¹¦ÄÜÉÏÓкܴóµÄÏÞÖÆ£¬ËùÒÔ£¬J**aÒýÈëÁ˶à̬ÐԵĸÅÄîÒÔÃÖ²¹ÕâµãµÄ²»×㣬´ËÍ⣬³éÏóÀàºÍ½Ó¿ÚÒ²Êǽâ¾öµ¥¼Ì³Ð¹æ¶¨ÏÞÖƵÄÖØÒªÊֶΡ£Í¬ÊÖÕ½Åܶ·ÔºÂýÊÓÆøÅà°ìÃûʱ£¬¶à̬ҲÊÇÃæÏò¶Ô¹»ÖξäÅ䱾·Ð͸ßæÃȱ·ÊÏó±à³ÌµÄ¾«ËèËùÔÚ¡£
ÒªÀí½â¶à̬ÐÔ£¬Ê×ÏÈÒªÖªµÀʲôÊÇ¡°ÏòÉÏתÐÍ¡±¡£
ÎÒ¶¨ÒåÁËÒ»¸ö×ÓÀàCat£¬Ëü¼Ì³ÐÁËAnimalÀ࣬ÄÇôºóÕß¾ÍÊÇÇ°ÕßÊǸ¸Àà¡£ÎÒ¿ÉÒÔͨ¹ý
Catc=newCat();
ʵÀý»¯Ò»¸öCatµÄ¶ÔÏó£¬Õâ¸ö²»ÄÑÀí½â¡£µ«µ±ÎÒÕâÑù¶¨Òåʱ£º
Animala=newCat();
ÕâÖ¾´ð´ú±íʲôÒâ˼ÄØ£¿
ºÜ¼òµ¥£¬Ëü±íʾÎÒ¶¨ÒåÁËÒ»¸öAnimalÀàÐ͵ÄÒýÓã¬Ö¸Ïòн¨µÄCatÀàÐ͵ĶÔÏó¡£ÓÉÓÚCatÊǼ̳Ð×ÔËüµÄ¸¸½ÅÑé¿É´´×ÅÒýÀàAnimal£¬ËùÒÔAnimalÀàÐ͵ÄÒýÓÃÊÇ¿ÉÒÔÖ¸ÏòCatÀàÐ͵Ĺʹ¦Ïçʱ¶ÔÏóµÄ¡£ÄÇôÕâÑùÊ׶¼«Ó³×öÓÐʲôÒâÒåÄØ£¿ÒòΪ×Ó°ë×ÅÀàÊǶԸ¸ÀàµÄÒ»¸ö¸Ä½øºÍÀ©³ä£¬ËùÒÔÒ»°ã×ÓÀàÔÚ¹¦ÄÜÉϽϸ¸Àà¸üÇ¿´ó£¬ÊôÐԽϸ¸Àà¸ü¶ÀÌØ£¬
¶¨ÒåÒ»¸ö¸¸ÀàÀàÐ͵ÄÒýÓÃÖ¸ÏòÒ»¸ö×ÓÀàµÄ¶ÔÏó¼È¿ÉÒÔʹÓÃ×ÓÀàÇ¿´óµÄ¹¦ÄÜ£¬ÓÖ¿ÉÒÔ³éÈ¡¸¸ÀàµÄ**ÐÔ¡£
ËùÒÔ£¬¼Á¿¹Áô¼ÈÁ÷Ôٵ׸¸ÀàÀàÐ͵ÄÒýÓÿÉÒÔµ÷Óø¸ÀàÖж¨ÒåµÄËùÓÐÊôÐԺͷ½·¨£¬¶ø¶ÔÓÚ×ÓÀàÖж¨Òå¶ø¸¸ÀàÖÐûÓеķ½·¨£¬ËüÊÇÎÞ¿ÉÄκεģ»
ͬʱ£¬¸¸ÀàÖеÄÒ»¸ö·½·¨Ö»ÓÐÔÚÔÚ¸¸ÀàÖж¨Òå¶øÔÚ×ÓÀàÖÐûÓÐÖØдµÄÇé¿öÏ£¬²Å¿ÉÒÔ±»¸¸ÀàÀàÐ͵ÄÒýÓõ÷Óã»
¶ÔÓÚ¸¸ÀàÖж¨ÒåµÄ·½·¨£¬Èç¹û×ÓÀàÖÐÖØдÁ˸÷½·¨£¬ÄÇô¸¸ÀàÀàÐ͵ÄÒýÓý«»áµ÷ÓÃ×ÓÀàÖеÄÕâ¸ö·½·¨£¬Õâ¾ÍÊǶ¯Ì¬Á¬½Ó¡£
¿´ÏÂÃæÕâ¶Î³ÌÐò£º
classFather{
publicvoidfuÐíÇånc1(){
fu»ØÁùÄÚ´í±»½ÐС¸únc2();
}
//ÕâÊǸ¸ÀàÖеÄfunc2()·½·¨£¬ÒòΪÏÂÃæµÄ×ÓÀàÖÐÖØдÁ˸÷½·¨
//ËùÒÔÔÚ¸¸ÀàÀàÐ͵ÄÒýÓÃÖе÷ÓÃʱ£¬Õâ¸ö·½·¨½«²»ÔÙÓÐЧ
//È¡¶ø´úÖ®µÄÊǽ«µ÷ÓÃ×ÓÀàÖÐÖØдµÄfunc2()·½·¨
publicvoidfunc2(){
System.out.println("AAA");
}
}
classChildextendsFather{
//func1(inti)ÊǶÔfunc1()·½·¨µÄÒ»¸öÖØÔØ
//ÓÉÓÚÔÚ¸¸ÀàÖÐûÓж¨ÒåÕâ¸ö·½·¨£¬ËùÒÔËü²»Äܱ»¸¸ÀàÀàÐ͵ÄÒýÓõ÷ÓÃ
//ËùÒÔÔÚÏÂÃæµÄmain·½·¨ÖÐchild.func1(68)ÊDz»¶ÔµÄ
publicvoidfunc1(inti){
System.out.println("**B");
}
//func2()ÖØдÁ˸¸ÀàFatherÖеÄfunc2()·½·¨
//Èç¹û¸¸ÀàÀàÐ͵ÄÒýÓÃÖе÷ÓÃÁËfunc2()·½·¨£¬ÄÇô±ØÈ»ÊÇ×ÓÀàÖÐÖØдµÄÕâ¸ö·½·¨
publicvoidfunc2(){
System.out.println("CCC");
}
}
publicclassPolymorphi**Test{
publicstaticvoidmain(String[]args){
Fatherchild=newChild();
child.func1();//´òÓ¡½á¹û½«»áÊÇʲô£¿
}
}
ÉÏÃæµÄ³ÌÐòÊǸöºÜµäÐ͵Ķà̬µÄÀý×Ó¡£×ÓÀàChild¼Ì³ÐÁ˸¸ÀàFather£¬²¢ÖØÔØÁ˸¸ÀàµÄfunc1()·½·¨£¬ÖØдÁ˸¸ÀàµÄfunc2()·½·¨¡£ÖØÔغóµÄfunc1(inti)ºÍfunc1()²»ÔÙÊÇͬһ¸ö·½·¨£¬ÓÉÓÚ¸¸ÀàÖÐûÓÐfunc1(inti)£¬ÄÇô£¬¸¸ÀàÀàÐ͵ÄÒýÓÃchild¾Í²»Äܵ÷ÓÃfunc1(inti)·½·¨¡£¶ø×ÓÀàÖØдÁËfunc2()·½·¨£¬ÄÇô¸¸ÀàÀàÐ͵ÄÒýÓÃchildÔÚµ÷Óø÷½·¨Ê±½«»áµ÷ÓÃ×ÓÀàÖÐÖØдµÄfunc2()¡£
ÄÇô¸Ã³ÌÐò½«»á´òÓ¡³öʲôÑùµÄ½á¹ûÄØ£¿
ºÜÏÔÈ»£¬Ó¦¸ÃÊÇ¡°CCC¡±¡£
¶ÔÓÚ¶à̬£¬¿ÉÒÔ×ܽáËüΪ£º
Ò»¡¢Ê¹Óø¸ÀàÀàÐ͵ÄÒýÓÃÖ¸Ïò×ÓÀàµÄ¶ÔÏó£»
¶þ¡¢¸ÃÒýÓÃÖ»Äܵ÷Óø¸ÀàÖж¨ÒåµÄ·½·¨ºÍ±äÁ¿£»
Èý¡¢Èç**ÀàÖÐÖØдÁ˸¸ÀàÖеÄÒ»¸ö·½·¨£¬ÄÇôÔÚµ÷ÓÃÕâ¸ö·½·¨µÄʱºò£¬½«»áµ÷ÓÃ×ÓÀàÖеÄÕâ¸ö·½·¨£»£¨¶¯Ì¬Á¬½Ó¡¢¶¯Ì¬µ÷Óã©
ËÄ¡¢±äÁ¿²»Äܱ»ÖØд£¨¸²¸Ç£©£¬¡±ÖØд¡°µÄ¸ÅÄîÖ»Õë¶Ô·½·¨£¬Èç¹ûÔÚ×ÓÀàÖС±ÖØд¡°Á˸¸ÀàÖеıäÁ¿£¬ÄÇôÔÚ±àÒëʱ»á±¨´í¡£
****************************************************************************************************************************
¶à̬Ïê½â(ÕûÀí)2008-09-0319:29¶à̬ÊÇͨ¹ý:
1½Ó¿ÚºÍʵÏÖ½Ó¿Ú²¢¸²¸Ç½Ó¿ÚÖÐͬһ·½·¨µÄ¼¸²»Í¬µÄÀàÌåÏÖµÄ
2¸¸ÀàºÍ¼Ì³Ð¸¸Àಢ¸²¸Ç¸¸ÀàÖÐͬһ·½·¨µÄ¼¸¸ö²»Í¬×ÓÀàʵÏÖµÄ.
Ò»¡¢»ù±¾¸ÅÄî
¶à̬ÐÔ£º·¢ËÍÏûÏ¢¸øij¸ö¶ÔÏó£¬ÈøöÔÏó×ÔÐоö¶¨ÏìÓ¦ºÎÖÖÐÐΪ¡£
ͨ¹ý½«×ÓÀà¶ÔÏóÒýÓø³Öµ¸ø³¬Àà¶ÔÏóÒýÓñäÁ¿À´ÊµÏÖ¶¯Ì¬·½·¨µ÷Óá£
j**aµÄÕâÖÖ»úÖÆ×ñÑÒ»¸öÔÔò£ºµ±³¬Àà¶ÔÏóÒýÓñäÁ¿ÒýÓÃ×ÓÀà¶ÔÏóʱ£¬±»ÒýÓöÔÏóµÄÀàÐͶø²»ÊÇÒýÓñäÁ¿µÄÀàÐ;ö¶¨Á˵÷ÓÃ˵ijÉÔ±·½·¨£¬µ«ÊÇÕâ¸ö±»µ÷Óõķ½·¨±ØÐëÊÇÔÚ³¬ÀàÖж¨Òå¹ýµÄ£¬Ò²¾ÍÊÇ˵±»×ÓÀา¸ÇµÄ·½·¨¡£
1.Èç¹ûaÊÇÀàAµÄÒ»¸öÒýÓã¬ÄÇô£¬a¿ÉÒÔÖ¸ÏòÀàAµÄÒ»¸öʵÀý,»òÕß˵ָÏòÀàAµÄÒ»¸ö×ÓÀà¡£
2.Èç¹ûaÊǽӿÚAµÄÒ»¸öÒýÓã¬ÄÇô,a±ØÐëÖ¸ÏòʵÏÖÁ˽ӿÚAµÄÒ»¸öÀàµÄʵÀý¡£
¶þ¡¢J**a¶à̬ÐÔʵÏÖ»úÖÆ
SUNÄ¿Ç°µÄJVMʵÏÖ»úÖÆ£¬ÀàʵÀýµÄÒýÓþÍÊÇÖ¸ÏòÒ»¸ö¾ä±ú£¨handle£©µÄÖ¸Õ룬Õâ¸ö¾ä±úÊÇÒ»¶ÔÖ¸Õ룺
Ò»¸öÖ¸ÕëÖ¸ÏòÒ»Õűí¸ñ£¬Êµ¼ÊÉÏÕâ¸ö±í¸ñÒ²ÓÐÁ½¸öÖ¸Õ루һ¸öÖ¸ÕëÖ¸ÏòÒ»¸ö°üº¬Á˶ÔÏóµÄ·½·¨±í£¬ÁíÍâÒ»¸öÖ¸ÏòÀà¶ÔÏ󣬱íÃ÷¸Ã¶ÔÏóËùÊôµÄÀàÐÍ£©£»
ÁíÒ»¸öÖ¸ÕëÖ¸ÏòÒ»¿é´Ój**a¶ÑÖÐΪ·ÖÅä³öÀ´ÄÚ´æ¿Õ¼ä¡£
Èý¡¢×ܽá
1¡¢Í¨¹ý½«×ÓÀà¶ÔÏóÒýÓø³Öµ¸ø³¬Àà¶ÔÏóÒýÓñäÁ¿À´ÊµÏÖ¶¯Ì¬·½·¨µ÷Óá£
DerivedCc2=newDerivedC();
BaseClassa1=c2;//BaseClass»ùÀ࣬DerivedCÊǼ̳Ð×ÔBaseClassµÄ×ÓÀà
***.play();//play()ÔÚBaseClass£¬DerivedCÖоùÓж¨Ò壬¼´×ÓÀาдÁ˸÷½·¨
·ÖÎö£º
*Ϊʲô×ÓÀàµÄÀàÐ͵ĶÔÏóʵÀý¿ÉÒÔ¸²¸ø³¬ÀàÒýÓã¿
×Ô¶¯ÊµÏÖÏòÉÏתÐÍ¡£Í¨¹ý¸ÃÓï¾ä£¬±àÒëÆ÷×Ô¶¯½«×ÓÀàʵÀýÏòÉÏÒƶ¯£¬³ÉΪͨÓÃÀàÐÍBaseClass£»
*a.play()½«Ö´ÐÐ×ÓÀ໹ÊǸ¸ÀඨÒåµÄ·½·¨£¿
×ÓÀàµÄ¡£ÔÚÔËÐÐʱÆÚ£¬½«¸ù¾ÝaÕâ¸ö¶ÔÏóÒýÓÃʵ¼ÊµÄÀàÐÍÀ´»ñÈ¡¶ÔÓ¦µÄ·½·¨¡£ËùÒÔ²ÅÓжà̬ÐÔ¡£Ò»¸ö»ùÀàµÄ¶ÔÏóÒýÓ㬱»¸³Ó費ͬµÄ×ÓÀà¶ÔÏóÒýÓã¬Ö´Ðи÷½·¨Ê±£¬½«±íÏÖ³ö²»Í¬µÄÐÐΪ¡£
ÔÚa1=c2µÄʱºò£¬ÈÔÈ»ÊÇ´æÔÚÁ½¸ö¾ä±ú£¬a1ºÍc2£¬µ«ÊÇa1ºÍc2ÓµÓÐͬһ¿é**ÄÚ´æ¿éºÍ²»Í¬µÄº¯Êý±í¡£
2¡¢²»ÄܰѸ¸Àà¶ÔÏóÒýÓø³¸ø×ÓÀà¶ÔÏóÒýÓñäÁ¿
BaseClassa2=newBaseClass();
DerivedCc1=a2;//³ö´í
ÔÚj**aÀïÃ棬ÏòÉÏתÐÍÊÇ×Ô¶¯½øÐеÄ,µ«ÊÇÏòÏÂתÐÍÈ´²»ÊÇ£¬ÐèÒªÎÒÃÇ×Ô¼º¶¨ÒåÇ¿ÖƽøÐС£
c1=(DerivedC)a2;½øÐÐÇ¿ÖÆת»¯,Ò²¾ÍÊÇÏòÏÂתÐÍ.
3¡¢¼Çסһ¸öºÜ¼òµ¥Óֺܸ´ÔӵĹæÔò£¬Ò»¸öÀàÐÍÒýÓÃÖ»ÄÜÒýÓÃÒýÓÃÀàÐÍ×ÔÉíº¬Óеķ½·¨ºÍ±äÁ¿¡£
Äã¿ÉÄÜ˵Õâ¸ö¹æÔò²»¶ÔµÄ£¬ÒòΪ¸¸ÀàÒýÓÃÖ¸Ïò×ÓÀà¶ÔÏóµÄʱºò£¬×îºóÖ´ÐеÄÊÇ×ÓÀàµÄ·½·¨µÄ¡£
ÆäʵÕâ²¢²»Ã¬¶Ü£¬ÄÇÊÇÒòΪ²ÉÓÃÁ˺óÆڰ󶨣¬¶¯Ì¬ÔËÐеÄʱºòÓÖ¸ù¾ÝÐͱðÈ¥µ÷ÓÃÁË×ÓÀàµÄ·½·¨¡£¶ø¼ÙÈô×ÓÀàµÄÕâ¸ö·½·¨ÔÚ¸¸ÀàÖв¢Ã»Óж¨Ò壬Ôò»á³ö´í¡£
ÀýÈ磬DerivedCÀàÔڼ̳ÐBaseClassÖж¨ÒåµÄº¯ÊýÍ⣬»¹Ôö¼ÓÁ˼¸¸öº¯Êý£¨ÀýÈçmyFun()£©
·ÖÎö£º
µ±ÄãʹÓø¸ÀàÒýÓÃÖ¸Ïò×ÓÀàµÄʱºò£¬ÆäʵjvmÒѾʹÓÃÁ˱àÒëÆ÷**ÉúµÄÀàÐÍÐÅÏ¢µ÷Õûת»»ÁË¡£
ÕâÀïÄã¿ÉÒÔÕâÑùÀí½â£¬Ï൱ÓڰѲ»ÊǸ¸ÀàÖк¬Óеĺ¯Êý´ÓÐéÄ⺯Êý±íÖÐÉèÖÃΪ²»¿É¼ûµÄ¡£×¢ÒâÓпÉÄÜÐéÄ⺯Êý±íÖÐÓÐЩº¯ÊýµØÖ·ÓÉÓÚÔÚ×ÓÀàÖÐÒѾ±»¸ÄдÁË£¬ËùÒÔ¶ÔÏóÐéÄ⺯Êý±íÖÐÐéÄ⺯ÊýÏîÄ¿µØÖ·ÒѾ±»ÉèÖÃΪ×ÓÀàÖÐÍê³ÉµÄ·½·¨ÌåµÄµØÖ·ÁË¡£
4¡¢J**aÓëC++¶à̬ÐԵıȽÏ
jvm¹ØÓÚ¶à̬ÐÔÖ§³Ö½â¾ö·½·¨ÊǺÍc++Öм¸ºõÒ»ÑùµÄ£¬
Ö»ÊÇc++ÖбàÒëÆ÷ºÜ¶àÊÇ°ÑÀàÐÍÐÅÏ¢ºÍÐéÄ⺯ÊýÐÅÏ¢¶¼·ÅÔÚÒ»¸öÐéÄ⺯Êý±íÖУ¬µ«ÊÇÀûÓÃijÖÖ¼¼ÊõÀ´Çø±ð¡£
J**a°ÑÀàÐÍÐÅÏ¢ºÍº¯ÊýÐÅÏ¢·Ö**¡£J**aÖÐÔڼ̳ÐÒÔºó£¬×ÓÀà»áÖØÐÂÉèÖÃ×Ô¼ºµÄÐéÄ⺯Êý±í£¬Õâ¸öÐéÄ⺯Êý±íÖеÄÏîÄ¿ÓÐÓÉÁ½²¿·Ö×é³É¡£´Ó¸¸Àà¼Ì³ÐµÄÐéÄ⺯ÊýºÍ×ÓÀà×Ô¼ºµÄÐéÄ⺯Êý¡£
ÐéÄ⺯Êýµ÷ÓÃÊǾ¹ýÐéÄ⺯Êý±í¼ä½Óµ÷Óõģ¬ËùÒԲŵÃÒÔʵÏÖ¶à̬µÄ¡£
J**aµÄËùÓк¯Êý£¬³ýÁ˱»ÉùÃ÷ΪfinalµÄ£¬¶¼ÊÇÓúóÆڰ󶨡£
ËÄ.1¸öÐÐΪ,²»Í¬µÄ¶ÔÏó,ËûÃǾßÌåÌåÏÖ³öÀ´µÄ·½Ê½²»Ò»Ñù,
±ÈÈç:·½·¨ÖØÔØoverloadingÒÔ¼°·½·¨ÖØд(¸²¸Ç)override
classh**uman{
voidrun(){Êä³öÈËÔÚÅÜ}
}
classManextendsh**uman{
voidrun(){Êä³öÄÐÈËÔÚÅÜ}
}
Õâ¸öʱºò,ͬÊÇÅÜ,²»Í¬µÄ¶ÔÏó,²»Ò»Ñù(Õâ¸öÊÇ·½·¨¸²¸ÇµÄÀý×Ó)
classTest{
voidout(Stringstr){Êä³östr}
voidout(inti){Êä³öi}
}
Õâ¸öÀý×ÓÊÇ·½·¨ÖØÔØ,·½·¨ÃûÏàͬ,²ÎÊý±í²»Í¬
ok,Ã÷°×ÁËÕâЩ»**»¹»,»¹ÓÃÈËÔÚÅܾÙÀý
h**umanahuman=newMan();
ÕâÑùÎÒµÈÓÚʵÀý»¯ÁËÒ»¸öManµÄ¶ÔÏó,²¢ÉùÃ÷ÁËÒ»¸öh**umanµÄÒýÓÃ,ÈÃËüÈ¥Ö¸ÏòManÕâ¸ö¶ÔÏó
Òâ˼ÊÇ˵,°ÑManÕâ¸ö¶ÔÏóµ±h**uman¿´ÁË.
±ÈÈçÈ¥¶¯ÎïÔ°,Äã¿´¼ûÁËÒ»¸ö¶¯Îï,²»ÖªµÀËüÊÇʲô,"ÕâÊÇʲô¶¯Îï?""ÕâÊÇ´óÐÜè!"
Õâ2¾ä»°,¾ÍÊÇ×îºÃµÄÃ÷,ÒòΪ²»ÖªµÀËüÊÇ´óÐÜè,µ«ÖªµÀËüµÄ¸¸ÀàÊǶ¯Îï,ËùÒÔ,
Õâ¸ö´óÐÜè¶ÔÏó,Äã°ÑËüµ±³ÉÆ丸ÀදÎï¿´,ÕâÑù×ÓºÏÇéºÏÀí.
ÕâÖÖ·½Ê½ÏÂҪעÒânewMan();µÄȷʵÀý»¯ÁËMan¶ÔÏó,ËùÒÔ***.run()Õâ¸ö·½·¨Êä³öµÄÊÇ"ÄÐÈËÔÚÅÜ"
Èç¹ûÔÚ×ÓÀàManÏÂÄãдÁËһЩËü¶ÀÓеķ½·¨±ÈÈçeat(),¶øh**umanûÓÐÕâ¸ö·½·¨,
ÔÚµ÷ÓÃeat·½·¨Ê±,Ò»¶¨Òª×¢ÒâÇ¿ÖÆÀàÐÍת»»((Man)ahuman).eat(),ÕâÑù²Å¿ÉÒÔ
¶Ô½Ó¿ÚÀ´Ëµ,Çé¿öÊÇÀàËƵÄ
ʵÀý:
packagedomatic;
//¶¨Ò峬ÀàsuperA
classsuperA{
inti=100;
voidfun(intj){
j=i;
System.out.println("ThisissuperA");
}
}
//¶¨ÒåsuperAµÄ×ÓÀàsubB
classsubBextendssuperA{
intm=1;
voidfun(intaa){
System.out.println("ThisissubB");
}
}
//¶¨ÒåsuperAµÄ×ÓÀàsubC
classsubCextendssuperA{
intn=1;
voidfun(intcc){
System.out.println("ThisissubC");
}
}
classTest{
publicstaticvoidmain(String[]args){
superAa=newsuperA();
subBb=newsubB();
subCc=newsubC();
a=b;
a.fun(100);
a=c;
a.fun(200);
}
}
/*
*ÉÏÊö´úÂëÖÐsubBºÍsubCÊdz¬ÀàsuperAµÄ×ÓÀà,ÎÒÃÇÔÚÀàTestÖÐÉùÃ÷ÁË3¸öÒýÓñäÁ¿a,b,
*c,ͨ¹ý½«×ÓÀà¶ÔÏóÒýÓø³Öµ¸ø³¬Àà¶ÔÏóÒýÓñäÁ¿À´ÊµÏÖ¶¯Ì¬·½·¨µ÷Óá£Ò²ÐíÓÐÈË»áÎÊ£º
*"Ϊʲô(1)ºÍ(2)²»Êä³ö£ºThisissuperA"¡£
*j**aµÄÕâÖÖ»úÖÆ×ñÑÒ»¸öÔÔò£ºµ±³¬Àà¶ÔÏóÒýÓñäÁ¿ÒýÓÃ×ÓÀà¶ÔÏóʱ,
*±»ÒýÓöÔÏóµÄÀàÐͶø²»ÊÇÒýÓñäÁ¿µÄÀàÐ;ö¶¨Á˵÷ÓÃ˵ijÉÔ±·½·¨,
*µ«ÊÇÕâ¸ö±»µ÷Óõķ½·¨±ØÐëÊÇÔÚ³¬ÀàÖж¨Òå¹ýµÄ,
*Ò²¾ÍÊÇ˵±»×ÓÀา¸ÇµÄ·½·¨¡£
*ËùÒÔ,²»Òª±»ÉÏÀýÖÐ(1)ºÍ(2)ËùÃÔ»ó,ËäȻд³Éa.fun(),µ«ÊÇÓÉÓÚ(1)ÖеÄa±»b¸³Öµ,
*Ö¸ÏòÁË×ÓÀàsubBµÄÒ»¸öʵÀý,Òò¶ø(1)Ëùµ÷ÓõÄfun()ʵ¼ÊÉÏÊÇ×ÓÀàsubBµÄ³ÉÔ±·½·¨fun(),
*Ëü¸²¸ÇÁ˳¬ÀàsuperAµÄ³ÉÔ±·½·¨fun()£»Í¬Ñù(2)µ÷ÓõÄÊÇ×ÓÀàsubCµÄ³ÉÔ±·½·¨fun()¡£
*ÁíÍâ,Èç**Àà¼Ì³ÐµÄ³¬ÀàÊÇÒ»¸ö³éÏóÀà,ËäÈ»³éÏóÀ಻ÄÜͨ¹ýnew²Ù×÷·ûʵÀý»¯,
*µ«ÊÇ¿ÉÒÔ´´½¨³éÏóÀàµÄ¶ÔÏóÒýÓÃÖ¸Ïò×ÓÀà¶ÔÏó,ÒÔʵÏÖÔËÐÐʱ¶à̬ÐÔ¡£¾ßÌåµÄʵÏÖ·½·¨Í¬ÉÏÀý¡£
*²»¹ý,³éÏóÀàµÄ×ÓÀà±ØÐ븲¸ÇʵÏÖ³¬ÀàÖеÄËùÓеijéÏó·½·¨,
*·ñÔò×ÓÀà±ØÐë±»abstractÐÞÊηûÐÞÊÎ,µ±È»Ò²¾Í²»Äܱ»ÊµÀý»¯ÁË
*/
ÒÔÉÏ´ó¶àÊýÊÇÒÔ×ÓÀา¸Ç¸¸ÀàµÄ·½·¨ÊµÏÖ¶à̬.ÏÂÃæÊÇÁíÒ»ÖÖʵÏÖ¶à̬µÄ·½·¨-----------ÖØд¸¸Àà·½·¨
1.J**AÀïûÓжà¼Ì³Ð£¬Ò»¸öÀàÖ®ÄÜÓÐÒ»¸ö¸¸Àà¡£¶ø¼Ì³ÐµÄ±íÏÖ¾ÍÊǶà̬¡£Ò»¸ö¸¸Àà¿ÉÒÔÓжà¸ö×ÓÀ࣬¶øÔÚ×ÓÀàÀï¿ÉÒÔÖØд¸¸ÀàµÄ·½·¨£¨ÀýÈç·½·¨print()£©£¬ÕâÑùÿ¸ö×ÓÀàÀïÖØдµÄ´úÂë²»Ò»Ñù£¬×ÔÈ»±íÏÖÐÎʽ¾Í²»Ò»Ñù¡£ÕâÑùÓø¸ÀàµÄ±äÁ¿È¥ÒýÓò»Í¬µÄ×ÓÀ࣬ÔÚµ÷ÓÃÕâ¸öÏàͬµÄ·½·¨print()µÄʱºòµÃµ½µÄ½á¹ûºÍ±íÏÖÐÎʽ¾Í²»Ò»ÑùÁË£¬Õâ¾ÍÊǶà̬£¬ÏàͬµÄÏûÏ¢£¨Ò²¾ÍÊǵ÷ÓÃÏàͬµÄ·½·¨£©»áÓв»Í¬µÄ½á¹û¡£¾ÙÀý˵Ã÷£º
//¸¸Àà
publicclassFather{
//¸¸ÀàÓÐÒ»¸ö´òº¢×Ó·½·¨
publicvoidhitChild(){
}
}
//×ÓÀà1
publicclassSon1extendsFather{
//ÖØд¸¸Àà´òº¢×Ó·½·¨
publicvoidhitChild(){
System.out.println("Ϊʲô´òÎÒ£¿ÎÒ×ö´íʲôÁË£¡");
}
}
//×ÓÀà2
publicclassSon2extendsFather{
//ÖØд¸¸Àà´òº¢×Ó·½·¨
publicvoidhitChild(){
System.out.println("ÎÒÖªµÀ´íÁË£¬±ð´òÁË£¡");
}
}
//×ÓÀà3
publicclassSon3extendsFather{
//ÖØд¸¸Àà´òº¢×Ó·½·¨
publicvoidhitChild(){
System.out.println("ÎÒÅÜ£¬Äã´ò²»×Å£¡");
}
}
//²âÊÔÀà
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Fatherfather;
father=newSon1();
father.hitChild();
father=newSon2();
father.hitChild();
father=newSon3();
father.hitChild();
}
}
¶¼µ÷ÓÃÁËÏàͬµÄ·½·¨£¬³öÏÖÁ˲»Í¬µÄ½á¹û£¡Õâ¾ÍÊǶà̬µÄ±íÏÖ£¡
****************************************************************************************************************************