Vous êtes sur la page 1sur 32

LQKHULWDQFHDQGSRO\PRUSKLVP

:HZHUHXQGHUSDLG

%HWWHU/LYLQJLQ RYHUZRUNHGFRGHUV¶WLOOZH
WULHGWKH3RO\PRUSKLVP3ODQ%XW

2EMHFWYLOOH WKDQNVWRWKH3ODQRXUIXWXUHLV
EULJKW<RXUVFDQEHWRR

3ODQ\RXUSURJUDPVZLWKWKHIXWXUHLQPLQG)FTHEREWEREAWAYTOWRITE
*AVACODESUCHTHATYOUCOULDTAKEMOREVACATIONS HOWMUCHWOULDITBEWORTHTOYOU7HAT
IFYOUCOULDWRITECODETHATSOMEONEELSECOULDEXTEND EASILY!NDIFYOUCOULDWRITECODE
THATWASFLEXIBLE FORTHOSEPESKYLAST MINUTESPECCHANGES WOULDTHATBESOMETHINGYOURE
INTERESTEDIN4HENTHISISYOURLUCKYDAY&ORJUSTTHREEEASYPAYMENTSOFMINUTESTIME YOU
CANHAVEALLTHIS7HENYOUGETONTHE0OLYMORPHISM0LAN YOULLLEARNTHESTEPSTOBETTERCLASS
DESIGN THETRICKSTOPOLYMORPHISM THEWAYSTOMAKEFLEXIBLECODE ANDIFYOUACTNOWˆA
BONUSLESSONONTHETIPSFOREXPLOITINGINHERITANCE$ONTDELAY ANOFFERTHISGOODWILLGIVE
YOUTHEDESIGNFREEDOMANDPROGRAMMINGFLEXIBILITYYOUDESERVE)TSQUICK ITSEASY ANDITS
AVAILABLENOW3TARTTODAY ANDWELLTHROWINANEXTRALEVELOFABSTRACTION

WKLVLVDQHZFKDSWHU 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
WKHSRZHURI LQKHULWDQFH

+PIQZ?IZ[:M^Q[Q\ML
2EMEMBERWAYBACKINCHAPTER WHEN,ARRYPROCEDURALGUY
AND"RAD//GUY WEREVYINGFORTHE!ERONCHAIR,ETSLOOKAT
AFEWPIECESOFTHATSTORYTOREVIEWTHEBASICSOFINHERITANCE
,!2299OUVEGOTDUPLICATEDCODE4HEROTATEPROCEDURE
ISINALLFOUR3HAPETHINGS)TSASTUPIDDESIGN9OUHAVETO
MAINTAINFOURDIFFERENTROTATEhMETHODSv(OWCANTHAT
EVERBEGOOD
"2!$/H )GUESSYOUDIDNTSEETHElNALDESIGN,ETME
SHOWYOUHOW//INHERITANCEWORKS ,ARRY


6TXDUH &LUFOH 7ULDQJOH $PRHED
1 TWWSML I\ _PI\ ITT NW]Z
URWDWH URWDWH URWDWH URWDWH KTI[[M[ PI^M QV KWUUWV
SOD\6RXQG SOD\6RXQG SOD\6RXQG SOD\6RXQG


<PMa¼ZM ;PIXM[ IVL \PMa ITT ZW\I\M IVL 6KDSH
XTIa;W]VL ;W 1 IJ[\ZIK\ML W]\ \PM URWDWH
KWUUWV NMI\]ZM[ IVL X]\ \PMU QV\W I SOD\6RXQG 
VM_ KTI[[ KITTML ;PIXM <PMV1TQVSML\PMW\PMZ
6KDSH
[]XMZKTI[[ NW]Z[PIXMKTI[[M[\W
URWDWH
SOD\6RXQG \PMVM_;PIXMKTI[[
QVIZMTI\QWV[PQXKITTML
QVPMZQ\IVKM
<RXFDQUHDGWKLVDV´6TXDUHLQKHULWVIURP6KDSHµ
´&LUFOHLQKHULWVIURP6KDSHµDQGVRRQ,UHPRYHG []JKTI[[M[
URWDWH DQGSOD\6RXQG IURPWKHRWKHUVKDSHVVRQRZ
WKHUH·VRQO\RQHFRS\WRPDLQWDLQ
6TXDUH &LUFOH 7ULDQJOH $PRHED
7KH6KDSHFODVVLVFDOOHGWKHVXSHUFODVVRIWKHRWKHUIRXU
FODVVHV7KHRWKHUIRXUDUHWKHVXEFODVVHVRI6KDSH7KH
VXEFODVVHVLQKHULWWKHPHWKRGVRIWKHVXSHUFODVV,QRWKHU
ZRUGVLIWKH6KDSHFODVVKDVWKHIXQFWLRQDOLW\WKHQWKH
VXEFODVVHVDXWRPDWLFDOO\JHWWKDWVDPHIXQFWLRQDOLW\

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

?PI\IJW]\\PM)UWMJIZW\I\M'
,!2297ASNTTHATTHEWHOLEPROBLEMHEREˆTHATTHEAMOEBASHAPE
HADACOMPLETELYDIFFERENTROTATEANDPLAY3OUNDPROCEDURE
UULGH 1RZ
(OWCANAMOEBADOSOMETHINGDIFFERENTIFITINHERITSITS YH

2
FUNCTIONALITYFROMTHE3HAPECLASS
$V Z
"2!$4HATSTHELASTSTEP4HE!MOEBACLASSOVERRIDESTHE N 0H +R
METHODSOFTHE3HAPECLASS4HENATRUNTIME THE*6-KNOWS
EXACTLYWHICHROTATE METHODTORUNWHENSOMEONETELLSTHE
!MOEBATOROTATE

[]XMZKTI[[
UWZM IJ[\ZIK\
6KDSH 
URWDWH
SOD\6RXQG
1 UILM \PM )UWMJI KTI[[ W^MZZQLM
1UILM\PM)UWMJIKTI[[W^MZZQLM\PM
\PM ZW\I\M UM\PWL WN \PM
ZW\I\MIVLXTIa;W]VLUM\PWL[
[]XMZKTI[[ ;PIXM
WN\PM[]XMZKTI[[;PIXM7^MZZQLQVO
[]JKTI[[M[ R][\UMIV[\PI\I[]JKTI[[ZMLMNQVM[
UWZM [XMKQNQK 7^MZZQLQVO R][\ UMIV[ \PI\ I
WVMWNQ\[QVPMZQ\MLUM\PWL[_PMV
[]JKTI[[ ZMLMNQVM[ WVM WN Q\[
Q\VMML[\WKPIVOMWZM`\MVL\PM
QVPMZQ\ML UM\PWL[ _PMV Q\ VMML[
6TXDUH &LUFOH 7ULDQJOH $PRHED
JMPI^QWZWN\PI\UM\PWL
\W KPIVOM WZ M`\MVL \PM JMPI^QWZ
URWDWH WN \PI\ UM\PWL
 DPRHEDVSHFLILF
 URWDWH FRGH
7^MZZQLQVO UM\PWL[
SOD\6RXQG
 DPRHEDVSHFLILF
 VRXQG FRGH

YiX`e
gfn\i
(OWWOULDYOUREPRESENTAHOUSECATANDATIGER INAN
INHERITANCESTRUCTURE)SADOMESTICCATASPECIALIZED
VERSIONOFATIGER7HICHWOULDBETHESUBCLASSAND
WHICHWOULDBETHESUPERCLASS/RARETHEYBOTH
SUBCLASSESTOSOMEOTHERCLASS
(OWWOULDYOUDESIGNANINHERITANCESTRUCTURE7HAT
METHODSWOULDBEOVERRIDDEN
4HINKABOUTIT"EFOREYOUTURNTHEPAGE

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
WKHZD\LQKHULWDQFHZRUNV

=VLMZ[\IVLQVO 1VPMZQ\IVKM
?PMV aW] LM[QOV _Q\P QVPMZQ\IVKM aW] X]\ KWUUWV KWLM QV
I KTI[[ IVL \PMV \MTT W\PMZ UWZM [XMKQNQK KTI[[M[ \PI\ \PM
KWUUWV UWZM IJ[\ZIK\ KTI[[ Q[ \PMQZ []XMZKTI[[ ?PMV WVM
KTI[[ QVPMZQ\[ NZWU IVW\PMZ \PM []JKTI[[ QVPMZQ\[ NZWU \PM
[]XMZKTI[[
1V 2I^I _M [Ia \PI\ \PM []JKTI[[ M`\MVL[ \PM []XMZKTI[[
)V QVPMZQ\IVKM ZMTI\QWV[PQX UMIV[ \PI\ \PM []JKTI[[ QVPMZQ\[
\PM UMUJMZ[ WN \PM []XMZKTI[[ ?PMV _M [Ia ¹UMUJMZ[ WN
I KTI[[º _M UMIV \PM QV[\IVKM ^IZQIJTM[ IVL UM\PWL[
.WZ M`IUXTM QN 8IV\PMZ5IV Q[ I []JKTI[[ WN ;]XMZ0MZW \PM
8IV\PMZ5IV KTI[[ I]\WUI\QKITTa QVPMZQ\[ \PM QV[\IVKM ^IZQIJTM[
IVL UM\PWL[ KWUUWV \W ITT []XMZPMZWM[ QVKT]LQVO  

            IVL
[W WV *]\ \PM 8IV\PMZ5IV []JKTI[[ KIV ILL VM_
UM\PWL[ IVL QV[\IVKM ^IZQIJTM[ WN Q\[ W_V IVL Q\ KIV
W^MZZQLM \PM UM\PWL[ Q\ QVPMZQ\[ NZWU \PM []XMZKTI[[
;]XMZ0MZW

[]XMZKTI[[ 6XSHU+HUR
UWZM IJ[\ZIK\ VXLW
QV[\IVKM ^IZQIJTM[
WLJKWV
VSHFLDO3RZHU [\I\M I\\ZQJ]\M[

XVH6SHFLDO3RZHU UM\PWL[
SXW2Q6XLW JMPI^QWZ
[]JKTI[[M[
UWZM [XMKQNQK
3DQWKHU0DQ 7^MZZQLQVO
)ULHG(JJ0DQ
XVH6SHFLDO3RZHU UM\PWL[
SXW2Q6XLW

.ZQML-OO5IV LWM[V¼\ VMML IVa JMPI^QWZ \PI\¼[ ]VQY]M


[W PM LWM[V¼\ W^MZZQLM IVa UM\PWL[ <PM UM\PWL[ IVL
QV[\IVKM ^IZQIJTM[ QV ;]XMZ0MZW IZM []NNQKQMV\
8IV\PMZ5IV \PW]OP PI[ [XMKQNQK ZMY]QZMUMV\[ NWZ PQ[ []Q\
IVL [XMKQIT XW_MZ[ [W       IVL
  IZM JW\P W^MZZQLLMV QV \PM 8IV\PMZ5IV
KTI[[
1V[\IVKM ^IZQIJTM[ IZM VW\ W^MZZQLLMV JMKI][M \PMa
LWV¼\ VMML \W JM <PMa LWV¼\ LMNQVM IVa [XMKQIT JMPI^QWZ [W I
[]JKTI[[ KIV OQ^M IV QVPMZQ\ML QV[\IVKM ^IZQIJTM IVa ^IT]M Q\
KPWW[M[ 8IV\PMZ5IV KIV [M\ PQ[ QVPMZQ\ML 
 \W
X]ZXTM _PQTM .ZQML-OO5IV [M\[ PQ[ \W _PQ\M
 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

)VQVPMZQ\IVKMM`IUXTM" ,LQKHULWHGP\
SXEOLFFODVV'RFWRU^ SURFHGXUHVVR,GLGQ·W
ERWKHUZLWKPHGLFDOVFKRRO
ERROHDQZRUNV$W+RVSLWDO 5HOD[WKLVZRQ·WKXUWDELW
QRZZKHUHGLG,SXWWKDW
YRLGWUHDW3DWLHQW ^ SRZHUVDZ
SHUIRUPDFKHFNXS

`
`

SXEOLFFODVV)DPLO\'RFWRUH[WHQGV'RFWRU^

ERROHDQPDNHV+RXVH&DOOV
YRLGJLYH$GYLFH ^
JLYHKRPHVSXQDGYLFH
`

SXEOLFFODVV6XUJHRQH[WHQGV'RFWRU^

YRLGWUHDW3DWLHQW ^
SHUIRUPVXUJHU\
`

YRLGPDNH,QFLVLRQ ^
PDNHLQFLVLRQ \LNHV
`
`

6KDUSHQ \RXU SHQFLO


[]XMZKTI[[

'RFWRU
+RZPDQ\LQVWDQFHYDULDEOHVGRHV
ZRUNV$W+RVSLWDO WVM QV[\IVKM ^IZQIJTM 6XUJHRQKDYH"
WUHDW3DWLHQW WVM UM\PWL +RZPDQ\LQVWDQFHYDULDEOHVGRHV
)DPLO\'RFWRUKDYH"

+RZPDQ\PHWKRGVGRHV'RFWRUKDYH"
[]JKTI[[M[ +RZPDQ\PHWKRGVGRHV6XUJHRQKDYH"

+RZPDQ\PHWKRGVGRHV)DPLO\'RFWRU
6XUJHRQ )DPLO\'RFWRU
$GGV RQH QHZ KDYH"
2YHUULGHV WKH LQKHULWHG PDNHV+RXVH&DOOV
LQVWDQFH YDULDEOH
WUHDW3DWLHQW PHWKRG WUHDW3DWLHQW &DQD)DPLO\'RFWRUGRWUHDW3DWLHQW "
JLYH$GYLFH $GGV RQH QHZ PHWKRG
$GGV RQH QHZ PHWKRG PDNH,QFLVLRQ &DQD)DPLO\'RFWRUGRPDNH,QFLVLRQ "

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
GHVLJQLQJIRULQKHULWDQFH

4M\¼[LM[QOV\PMQVPMZQ\IVKM\ZMMNWZ
IV)VQUIT[QU]TI\QWVXZWOZIU
)MAGINEYOUREASKEDTODESIGNASIMULATIONPROGRAMTHAT
LETSTHEUSERTHROWABUNCHOFDIFFERENTANIMALSINTOAN
ENVIRONMENTTOSEEWHATHAPPENS7EDONTHAVETOCODETHE
THINGNOW WEREMOSTLYINTERESTEDINTHEDESIGN
7EVEBEENGIVENALISTOFSOMEOFTHEANIMALSTHATWILLBE
INTHEPROGRAM BUTNOTALL7EKNOWTHATEACHANIMALWILL
BEREPRESENTEDBYANOBJECT ANDTHATTHEOBJECTSWILLMOVE
AROUNDINTHEENVIRONMENT DOINGWHATEVERITISTHATEACH
PARTICULARTYPEISPROGRAMMEDTODO
!NDWEWANTOTHERPROGRAMMERSTOBEABLETOADDNEW
KINDSOFANIMALSTOTHEPROGRAMATANYTIME
&IRSTWEHAVETOlGUREOUTTHECOMMON ABSTRACT
CHARACTERISTICSTHATALLANIMALSHAVE ANDBUILDTHOSE
CHARACTERISTICSINTOACLASSTHATALLANIMALCLASSESCANEXTEND

 /RRNIRUREMHFWVWKDWKDYHFRPPRQ
DWWULEXWHVDQGEHKDYLRUV

:KDWGRWKHVHVL[W\SHVKDYHLQ
FRPPRQ"7KLVKHOSV\RXWRDEVWUDFW
RXWEHKDYLRUV VWHS

+RZDUHWKHVHW\SHVUHODWHG"7KLV
KHOSV\RXWRGHÀQHWKHLQKHULWDQFH
WUHHUHODWLRQVKLSV VWHS

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

=[QVOQVPMZQ\IVKM\WI^WQL
L]XTQKI\QVOKWLMQV[]JKTI[[M[
7EHAVElVEINSTANCEVARIABLES 
PICTUREnTHElLENAMEREPRESENTINGTHE*0%'OFTHISANIMAL 'HVLJQDFODVVWKDWUHSUHVHQWV
FOODnTHETYPEOFFOODTHISANIMALEATS2IGHTNOW THERE WKHFRPPRQVWDWHDQGEHKDYLRU
CANBEONLYTWOVALUESMEATORGRASS
7KHVHREMHFWVDUHDOODQLPDOVVR
HUNGERnANINTREPRESENTINGTHEHUNGERLEVELOFTHEANIMAL ZH·OOPDNHDFRPPRQVXSHUFODVV
)TCHANGESDEPENDINGONWHENANDHOWMUCH THE FDOOHG$QLPDO
ANIMALEATS :H·OOSXWLQPHWKRGVDQGLQVWDQFH
BOUNDARIESnVALUESREPRESENTINGTHEHEIGHTANDWIDTHOF YDULDEOHVWKDWDOODQLPDOVPLJKW
THE@SPACEFOREXAMPLE X THATTHEANIMALSWILL QHHG
ROAMAROUNDIN
LOCATIONnTHE8AND9COORDINATESFORWHERETHEANIMALIS $QLPDO
INTHESPACE
SLFWXUH
7EHAVEFOURMETHODS IRRG
KXQJHU
MAKE.OISE nBEHAVIORFORWHENTHEANIMALISSUPPOSEDTO
ERXQGDULHV
MAKENOISE ORFDWLRQ
EAT nBEHAVIORFORWHENTHEANIMALENCOUNTERSITS
PREFERREDFOODSOURCE MEATORGRASS PDNH1RLVH
HDW
SLEEP nBEHAVIORFORWHENTHEANIMALISCONSIDEREDASLEEP VOHHS
ROAM nBEHAVIORFORWHENTHEANIMALISNOTEATINGOR URDP
SLEEPINGPROBABLYJUSTWANDERINGAROUNDWAITINGTOBUMP
INTOAFOODSOURCEORABOUNDARY 

/LRQ
VL]H
SLFWXUH :ROI
IRRG VL]H
SUH\ SLFWXUH
IRRG
&DW
SUH\
7LJHU
+LSSR VL]H
VL]H SLFWXUH
VL]H SLFWXUH 'RJ IRRG
SLFWXUH IRRG VL]H SUH\
IRRG SUH\ SLFWXUH
SUH\
IRRG
SUH\

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
GHVLJQLQJIRULQKHULWDQFH

,WITTIVQUIT[MI\\PM[IUM_Ia'
!SSUMETHATWEALLAGREEONONETHINGTHEINSTANCE
VARIABLESWILLWORKFORALL!NIMALTYPES!LIONWILL
HAVEHISOWNVALUEFORPICTURE FOODWERETHINKING
MEAT HUNGER BOUNDARIES ANDLOCATION!HIPPO
WILLHAVEDIFFERENTVALUESFORHISINSTANCEVARIABLES
'HFLGHLIDVXEFODVV
BUTHELLSTILLHAVETHESAMEVARIABLESTHATTHEOTHER  QHHGVEHKDYLRUV PHWKRG
!NIMALTYPESHAVE3AMEWITHDOG TIGER ANDSOON
"UTWHATABOUTBEHAVIOR LPSOHPHQWDWLRQV WKDWDUHVSHFLÀF
WRWKDWSDUWLFXODUVXEFODVVW\SH

?PQKPUM\PWL[[PW]TL_MW^MZZQLM' /RRNLQJDWWKH$QLPDOFODVV
ZHGHFLGHWKDWHDW DQG

Licensed by
$OESALIONMAKETHESAMENOISEASADOG$OES PDNH1RLVH VKRXOGEHRYHUULGGHQ
ACATEATLIKEAHIPPO-AYBEINYOURVERSION BUT E\WKHLQGLYLGXDOVXEFODVVHV
INOURS EATINGANDMAKINGNOISEARE!NIMAL TYPE
SPECIlC7ECANTlGUREOUTHOWTOCODETHOSE
METHODSINSUCHAWAYTHATTHEYDWORKFORANY

Eduard Simons
ANIMAL/+ THATSNOTTRUE7ECOULDWRITETHE
MAKE.OISE METHOD FOREXAMPLE SOTHATALLITDOES
ISPLAYASOUNDlLEDElNEDINANINSTANCEVARIABLE
,QWKHGRJ
FORTHATTYPE BUTTHATSNOTVERYSPECIALIZED3OME
ANIMALSMIGHTMAKEDIFFERENTNOISES FRPPXQLW\EDUNLQJLVDQ

104038
FORDIFFERENTSITUATIONSLIKEONE LPSRUWDQWSDUWRIRXUFXOWXUDO
FOREATING ANDANOTHERWHEN ,·PRQHEDG VV LGHQWLW\:HKDYHDXQLTXHVRXQG
BUMPINGINTOANENEMY ETC SODQWHDWHU DQGZHZDQWWKDWGLYHUVLW\WR
EHUHFRJQL]HGDQGUHVSHFWHG
3OJUSTASWITHTHE!MOEBA
OVERRIDINGTHE3HAPECLASSROTATE
METHOD TOGETMOREAMOEBA SPECIlCIN
OTHERWORDS UNIQUE BEHAVIOR WELLHAVE
TODOTHESAMEFOROUR!NIMALSUBCLASSES

$QLPDO
SLFWXUH
IRRG
KXQJHU 
ERXQGDULHV WKHVHWZRPHWKRGV\SHDHFW DQ
:HEHWWHURYHUULGHRW WH DFK DQ LPD OW
ORFDWLRQ
DQGPDNH1RLVH V LILKD HKDYLRUIRUHDWLQJDQGG
GHILQHLWVRZQVSHFRZFE ORRNVOLNHVOHHS DQ
PDNH1RLVH
PDNLQJQRLVH)RUQQHULW
HDW
VOHHS
URDP FDQVWD\JH LF
URDP

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

4WWSQVONWZUWZMQVPMZQ\IVKM
WXXWZ\]VQ\QM[ 
4HECLASSHIERARCHYISSTARTINGTOSHAPEUP7E /RRNIRUPRUHRSSRUWXQLWLHVWRXVH
HAVEEACHSUBCLASSOVERRIDETHEMAKE.OISE AND DEVWUDFWLRQE\ÀQGLQJWZRRUPRUH
EAT METHODS SOTHATTHERESNOMISTAKINGA$OG VXEFODVVHVWKDWPLJKWQHHGFRPPRQ
BARKFROMA#ATMEOWQUITEINSULTINGTOBOTH EHKDYLRU
PARTIES !NDA(IPPOWONTEATLIKEA,ION
:HORRNDWRXUFODVVHVDQGVHH
"UTPERHAPSTHERESMOREWECANDO7EHAVETO
WKDW:ROIDQG'RJPLJKWKDYHVRPH
LOOKATTHESUBCLASSESOF!NIMAL ANDSEEIFTWO EHKDYLRULQFRPPRQDQGWKHVDPHJRHV
ORMORECANBEGROUPEDTOGETHERINSOMEWAY IRU/LRQ7LJHUDQG&DW
ANDGIVENCODETHATSCOMMONTOONLYTHATNEW
GROUP7OLFAND$OGHAVESIMILARITIES3ODO
,ION 4IGER AND#AT

$QLPDO
SLFWXUH
IRRG
KXQJHU
ERXQGDULHV
ORFDWLRQ

PDNH1RLVH
HDW
VOHHS
Q
H ULI/LRKDYH URDP :ROIDQG R
,Z R Q G XOG PD\EHWKH' JDUHERWKF
+PPPUDQG&DWZPR RQ DQLQ
%27+FODVVUHH·VVRPHWKLQJWKDWHV
H
7LJ WKLQJLQFR P VFRXOGXVH
VRPH
/LRQ
VL]H
SLFWXUH :ROI
IRRG
PDNH1RLVH VL]H
SUH\
HDW SLFWXUH
IRRG
PDNH1RLVH
&DW
SUH\
HDW
7LJHU
+LSSR VL]H
VL]H SLFWXUH
VL]H SLFWXUH 'RJ IRRG
PDNH1RLVH
SLFWXUH IRRG
PDNH1RLVH VL]H SUH\
HDW
IRRG
PDNH1RLVH SUH\
HDW SLFWXUH
SUH\
HDW IRRG
PDNH1RLVH
SUH\
HDW

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
GHVLJQLQJIRULQKHULWDQFH

 )LQLVKWKHFODVVKLHUDUFK\
6LQFHDQLPDOVDOUHDG\KDYHDQRUJDQL]DWLRQDO $QLPDO
KLHUDUFK\ WKHZKROHNLQJGRPJHQXVSK\OXP
WKLQJ ZHFDQXVHWKHOHYHOWKDWPDNHVWKHPRVW SLFWXUH
VHQVHIRUFODVVGHVLJQ:H·OOXVHWKHELRORJLFDO IRRG
´IDPLOLHVµWRRUJDQL]HWKHDQLPDOVE\PDNLQJD KXQJHU
)HOLQHFODVVDQGD&DQLQHFODVV ERXQGDULHV
ORFDWLRQ
:HGHFLGHWKDW&DQLQHVFRXOGXVHDFRPPRQ
URDP PHWKRGEHFDXVHWKH\WHQGWRPRYHLQ
PDNH1RLVH
SDFNV:HDOVRVHHWKDW)HOLQHVFRXOGXVHD HDW
FRPPRQURDP PHWKRGEHFDXVHWKH\WHQGWR VOHHS
DYRLGRWKHUVRIWKHLURZQNLQG:H·OOOHW+LSSR URDP
FRQWLQXHWRXVHLWVLQKHULWHGURDP PHWKRG³
WKHJHQHULFRQHLWJHWVIURP$QLPDO
6RZH·UHGRQHZLWKWKHGHVLJQIRUQRZZH·OO
FRPHEDFNWRLWODWHULQWKHFKDSWHU

)HOLQH

&DQLQH

URDP

+LSSR
URDP
VL]H
SLFWXUH
IRRG
PDNH1RLVH
SUH\
HDW
/LRQ
VL]H
SLFWXUH
IRRG
PDNH1RLVH
SUH\
HDW

'RJ
&DW
VL]H
VL]H SLFWXUH
7LJHU
SLFWXUH IRRG
PDNH1RLVH
VL]H IRRG :ROI SUH\
PDNH1RLVH HDW
SLFWXUH SUH\
HDW VL]H
IRRG
PDNH1RLVH
SUH\ SLFWXUH
HDW IRRG
PDNH1RLVH
SUH\
HDW

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

?PQKPUM\PWLQ[KITTML'
4HE7OLFCLASSHASFOURMETHODS/NE
INHERITEDFROM!NIMAL ONEINHERITEDFROM
#ANINEWHICHISACTUALLYANOVERRIDDEN
VERSIONOFAMETHODINCLASS!NIMAL AND
TWOOVERRIDDENINTHE7OLFCLASS7HEN
YOUCREATEA7OLFOBJECTANDASSIGNITTO
AVARIABLE YOUCANUSETHEDOTOPERATOR
ONTHATREFERENCEVARIABLETOINVOKEALL
$QLPDO
FOURMETHODS"UTWHICHVERSIONOFTHOSE
METHODSGETSCALLED PDNH1RLVH
HDW
VOHHS
URDP
PDNHDQHZ:ROIREMHFW :ROIZ QHZ:ROI 

FDOOVWKHYHUVLRQLQ:ROI ZPDNH1RLVH 

ZURDP  &DQLQH
FDOOVWKHYHUVLRQLQ&DQLQH
URDP
FDOOVWKHYHUVLRQLQ:ROI ZHDW 

FDOOVWKHYHUVLRQLQ$QLPDO ZVOHHS 

7HENYOUCALLAMETHODONANOBJECT
:ROI
REFERENCE YOURECALLINGTHEMOSTSPECIlC
VL]H
VERSIONOFTHEMETHODFORTHATOBJECTTYPE PDNH1RLVH
SLFWXUH
HDW
IRRG
)NOTHERWORDS THELOWESTONEWINS
SUH\
h,OWESTvMEANINGLOWESTONTHE
INHERITANCETREE#ANINEISLOWERTHAN
!NIMAL AND7OLFISLOWERTHAN#ANINE
SOINVOKINGAMETHODONAREFERENCE
TOA7OLFOBJECTMEANSTHE*6-STARTS
LOOKINGlRSTINTHE7OLFCLASS)FTHE*6-
DOESNTlNDAVERSIONOFTHEMETHODIN
THE7OLFCLASS ITSTARTSWALKINGBACKUP
THEINHERITANCEHIERARCHYUNTILITlNDSA
MATCH

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
SUDFWLFHGHVLJQLQJDQLQKHULWDQFHWUHH

<QJ[YNW bX^[ YNWLRU


'UDZDQLQKHULWDQFHGLDJUDPKHUH

WKHUH DUH QR
'XPE 4XHVWLRQV
Q: 9OUSAIDTHATTHE*6-STARTS A: 'OODQUESTION"UTYOUDONT 7HERETHEINHERITEDMETHODISDEFINED
WALKINGUPTHEINHERITANCETREE HAVETOWORRYABOUTTHAT4HECOMPILER INOTHERWORDS INWHICHSUPERCLASS
STARTINGATTHECLASSTYPEYOUINVOKED GUARANTEESTHATAPARTICULARMETHOD ITISDEFINED MAKESNODIFFERENCETO
THEMETHODONLIKETHE7OLFEXAMPLE ISCALLABLEFORASPECIFICREFERENCETYPE THECOMPILER"UTATRUNTIME THE*6-
ONTHEPREVIOUSPAGE "UTWHAT BUTITDOESNTSAYORCARE FROMWHICH WILLALWAYSPICKTHERIGHTONE!ND
HAPPENSIFTHE*6-DOESNTEVERlND CLASSTHATMETHODACTUALLYCOMESFROM THERIGHTONEMEANS THEMOSTSPECIFIC
AMATCH ATRUNTIME7ITHTHE7OLFEXAMPLE THE VERSIONFORTHATPARTICULAROBJECT
COMPILERCHECKSFORASLEEP METHOD
BUTDOESNTCARETHATSLEEP ISACTUALLY
DEFINEDINANDINHERITEDFROM CLASS
!NIMAL2EMEMBERTHATIFACLASS
INHERITSAMETHOD ITHASTHEMETHOD

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

=[QVO1;)IVL0);)
2EMEMBERTHATWHENONECLASS
INHERITSFROMANOTHER WESAYTHATTHE
SUBCLASSEXTENDSTHESUPERCLASS7HEN
YOUWANTTOKNOWIFONETHINGSHOULD
EXTENDANOTHER APPLYTHE)3 !TEST
4RIANGLE)3 !3HAPE YEAH THATWORKS 'RHV LW PDNH VHQVH WR
#AT)3 !&ELINE THATWORKSTOO VD\D7XE,6$%DWKURRP"2UD
3URGEON)3 !$OCTOR STILLGOOD %DWKURRP,6$7XE":HOOLWGRHVQ·WWR

4UBEXTENDS"ATHROOM SOUNDS PH7KHUHODWLRQVKLSEHWZHHQP\7XE


REASONABLE DQGP\%DWKURRPLV+$6$%DWKURRP
5NTILYOUAPPLYTHE)3 !TEST +$6$7XE7KDWPHDQV%DWKURRP
4OKNOWIFYOUVEDESIGNEDYOURTYPES K D VD7XELQVWDQFHYDULDEOH
CORRECTLY ASK h$OESITMAKESENSETO
SAYTYPE8)3 !TYPE9v)FITDOESNT
YOUKNOWTHERESSOMETHINGWRONG
WITHTHEDESIGN SOIFWEAPPLYTHE)3 !
TEST 4UB)3 !"ATHROOMISDElNITELY
FALSE
7HATIFWEREVERSEITTO"ATHROOM
EXTENDS4UB4HATSTILLDOESNTWORK
"ATHROOM)3 !4UBDOESNTWORK
4UBAND"ATHROOMARERELATED BUT
NOTTHROUGHINHERITANCE4UBAND
"ATHROOMAREJOINEDBYA(!3 !
RELATIONSHIP$OESITMAKESENSETO
SAYh"ATHROOM(!3 !4UBv)FYES
THENITMEANSTHAT"ATHROOMHASA
4UBINSTANCEVARIABLE)NOTHERWORDS
"ATHROOMHASAREFERENCETOA4UB BUT
"ATHROOMDOESNOTEXTEND4UBAND
VICE VERSA

7XE
LQWVL]H
%DWKURRP %XEEOHVE
7XEEDWKWXE %XEEOHV
6LQNWKH6LQN
LQWUDGLXV
LQWFRORU$PW

%DWKURRP+$6$7XEDQG7XE+$6$%XEEOHV
%XWQRERG\LQKHULWVIURP H[WHQGV DQ\ERG\HOVH

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
H[SORLWLQJWKHSRZHURI REMHFWV

*]\_IQ\ <PMZM¼[UWZM
4HE)3 !TESTWORKSANYWHEREINTHEINHERITANCETREE)FYOUR
INHERITANCETREEISWELL DESIGNED THE)3 !TESTSHOULDMAKE
SENSEWHENYOUASKANYSUBCLASSIFIT)3 !ANYOFITSSUPERTYPES

,IFODVV%H[WHQGVFODVV$FODVV%,6$FODVV$
7KLVLVWUXHDQ\ZKHUHLQWKHLQKHULWDQFHWUHH,I
FODVV&H[WHQGVFODVV%FODVV&SDVVHVWKH,6$
WHVWIRUERWK%DQG$

&DQLQHH[WHQGV$QLPDO $QLPDO 7ITHANINHERITANCETREELIKETHE


ONESHOWNHERE YOUREALWAYS
:ROIH[WHQGV&DQLQH PDNH1RLVH ALLOWEDTOSAYh7OLFEXTENDS
HDW !NIMALvORh7OLF)3 !!NIMALv
:ROIH[WHQGV$QLPDO VOHHS
URDP
)TMAKESNODIFFERENCEIF!NIMAL
ISTHESUPERCLASSOFTHESUPERCLASS
OF7OLF)NFACT ASLONGAS!NIMAL
&DQLQH,6$$QLPDO ISSOMEWHEREINTHEINHERITANCE
HIERARCHYABOVE7OLF 7OLF)3 !
:ROI,6$&DQLQH !NIMALWILLALWAYSBETRUE
&DQLQH
:ROI,6$$QLPDO 4HESTRUCTUREOFTHE!NIMAL
INHERITANCETREESAYSTOTHEWORLD
URDP
h7OLF)3 !#ANINE SO7OLFCANDO
ANYTHINGA#ANINECANDO!ND
7OLF)3 !!NIMAL SO7OLFCANDO
ANYTHINGAN!NIMALCANDOv
)TMAKESNODIFFERENCEIF7OLF
OVERRIDESSOMEOFTHEMETHODS
:ROI IN!NIMALOR#ANINE!SFARAS
VL]H
THEWORLDOFOTHERCODE IS
PDNH1RLVH
SLFWXUH CONCERNED A7OLFCANDOTHOSE
HDW
IRRG FOURMETHODS(OWHEDOESTHEM
SUH\ ORINWHICHCLASSTHEYREOVERRIDDEN
MAKESNODIFFERENCE!7OLFCAN
MAKE.OISE EAT SLEEP AND
ROAM BECAUSEA7OLFEXTENDS
FROMCLASS!NIMAL

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

LFN
0DNH LW 6W
E
TSAREBLU RUE
SE S A RE RED VIOLE HEREVERSEISNTT
2O H A P E T
S A3
3QUAREI AR
TSAREDE BEER
S A RE R ED VIOLE RINKSARE
2OSE B U T NOTALLD
0W_LWaW]SVW_QNaW]¼^MOW\ "EERIS A
$RI N K
N E T H A
HEONE
TSHOWST MBER IF
KEO ME
TURN-A NSHIP2E
aW]ZQVPMZQ\IVKMZQOP\' /+ YOUR FTHE)3 !RELATIO KESENSE
S O M A
WAY NES !9MU
ST
DS9 8)3
4HERESOBVIOUSLYMORETOITTHANWHATWEVE 8EX TEN
COVEREDSOFAR BUTWELLLOOKATALOTMORE//
ISSUESINTHENEXTCHAPTERWHEREWEEVENTUALLY
RElNEANDIMPROVEONSOMEOFTHEDESIGNWORK
WEDIDINTHISCHAPTER 
&ORNOW THOUGH AGOODGUIDELINEISTOUSETHE
<QJ[YNW bX^[ YNWLRU
)3 !TEST)Fh8)3 !9vMAKESSENSE BOTHCLASSES
8AND9 SHOULDPROBABLYLIVEINTHESAME 3XW D FKHFN QH[W WR WKH UHODWLRQVKLSV WKDW
INHERITANCEHIERARCHY#HANCESARE THEYHAVE PDNH VHQVH
THESAMEOROVERLAPPINGBEHAVIORS
2YHQ H[WHQGV .LWFKHQ
.HHSLQPLQGWKDWWKH
LQKHULWDQFH,6$UHODWLRQVKLS *XLWDU H[WHQGV ,QVWUXPHQW
ZRUNVLQRQO\RQHGLUHFWLRQ 3HUVRQ H[WHQGV (PSOR\HH
4RIANGLE)3 !3HAPEMAKESSENSE SOYOUCAN
)HUUDUL H[WHQGV (QJLQH
HAVE4RIANGLEEXTEND3HAPE
"UTTHEREVERSEˆ3HAPE)3 !4RIANGLEˆDOES )ULHG(JJ H[WHQGV )RRG
NOTMAKESENSE SO3HAPESHOULDNOTEXTEND %HDJOH H[WHQGV 3HW
4RIANGLE2EMEMBERTHATTHE)3 !RELATIONSHIP
IMPLIESTHATIF8)3 !9 THEN8CANDOANYTHING &RQWDLQHU H[WHQGV -DU
A9CANDOANDPOSSIBLYMORE 
0HWDO H[WHQGV 7LWDQLXP
*UDWHIXO'HDG H[WHQGV %DQG
%ORQGH H[WHQGV 6PDUW
%HYHUDJH H[WHQGV 0DUWLQL

+LQW DSSO\ WKH ,6$ WHVW

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
ZKRLQKHULWVZKDW

WKHUH DUH QR
'XPE 4XHVWLRQV
Q: 3OWESEEHOWASUBCLASSGETS Q: )NASUBCLASS WHATIF)WANTTO
TOINHERITASUPERCLASSMETHOD BUT 9OUCANDESIGNYOURSUPERCLASS
USE"/4(THESUPERCLASSVERSIONAND
WHATIFTHESUPERCLASSWANTSTOUSE METHODSINSUCHAWAYTHATTHEY
MYOVERRIDINGSUBCLASSVERSIONOFA
THESUBCLASSVERSIONOFTHEMETHOD CONTAINMETHODIMPLEMENTATIONS
METHOD)NOTHERWORDS )DONTWANT
THATWILLWORKFORANYSUBCLASS EVEN
TOCOMPLETELYREPLACETHESUPERCLASS
THOUGHTHESUBCLASSESMAYSTILLNEED
A: !SUPERCLASSWONTNECESSARILY
KNOWABOUTANYOFITSSUBCLASSES
VERSION )JUSTWANTTOADDMORESTUFF
TOIT
TO@APPENDMORECODE)NYOURSUBCLASS
OVERRIDINGMETHOD YOUCANCALLTHE
9OUMIGHTWRITEACLASSANDMUCH SUPERCLASSVERSIONUSINGTHEKEYWORD
LATERSOMEONEELSECOMESALONGAND
EXTENDSIT"UTEVENIFTHESUPERCLASS
A: 9OUCANDOTHIS!NDITSAN
IMPORTANTDESIGNFEATURE4HINKOFTHE
VXSHU)TSLIKESAYING hFIRSTGORUNTHE
SUPERCLASSVERSION THENCOMEBACKAND
CREATORDOESKNOWABOUTANDWANTS FINISHWITHMYOWNCODEv
WORDhEXTENDSvASMEANING h)WANT
TOUSE ASUBCLASSVERSIONOFAMETHOD
TOEXTENDTHEFUNCTIONALITYOFTHE
RI
WKLVFDOOVWKHLQKHULWHGYHUVLRQ
THERESNOSORTOFREVERSEORBACKWARDS
SUPERCLASSv
INHERITANCE4HINKABOUTIT CHILDREN
INHERITFROMPARENTS NOTTHEOTHERWAY
SXEOLFYRLGURDP ^
URDP WKHQFRPHVE DFN WRGR
\RXURZQVXEFODVVVSHFLILFFRGH
VXSHUURDP 
AROUND
P\RZQURDPVWXII
`

?PW OM\[ \PM 8WZ[KPM _PW OM\[ \PM XWZKMTIQV' )KKM[[ TM^MT[ KWV\ZWT _PW [MM[ _PI\ IVL IZM KZ]KQIT
PW_ \W SVW_ _PI\ I []JKTI[[ KIV
PW_\WSVW__PI\I[]JKTI[[KIV \W PI^QVO _MTTLM[QOVML ZWJ][\ 2I^I KWLM .WZ VW_ _M¼TT
QVPMZQ\NZWUQ\[[]XMZKTI[[
QVPMZQ\ NZWU Q\¼[ []XMZKTI[[ NWK][ R][\ WV X]JTQK IVL XZQ^I\M <PM Z]TM[ IZM [QUXTM NWZ
\PW[M \_W"
) []JKTI[[ QVPMZQ\[ UMUJMZ[ WN \PM SXEOLF PHPEHUV DUH LQKHULWHG
[]XMZKTI[[ 5MUJMZ[ QVKT]LM QV[\IVKM SULYDWH PHPEHUV DUH QRW LQKHULWHG
^IZQIJTM[ IVL UM\PWL[ IT\PW]OP TI\MZ QV
\PQ[ JWWS _M¼TT TWWS I\ W\PMZ QVPMZQ\ML UMUJMZ[ )
[]XMZKTI[[ KIV KPWW[M _PM\PMZ WZ VW\ Q\ _IV\[ I ?PMV I []JKTI[[ QVPMZQ\[ I UMUJMZ Q\ Q[ I[ QN \PM
[]JKTI[[ \W QVPMZQ\ I XIZ\QK]TIZ UMUJMZ Ja \PM TM^MT WN []JKTI[[ LMNQVML \PM UMUJMZ Q\[MTN 1V \PM ;PIXM
IKKM[[ \PM XIZ\QK]TIZ UMUJMZ Q[ OQ^MV M`IUXTM ;Y]IZM QVPMZQ\ML \PM   IVL

  UM\PWL[ IVL \W \PM W]\[QLM _WZTL W\PMZ
<PMZM IZM NW]Z IKKM[[ TM^MT[ \PI\ _M¼TT KW^MZ QV \PQ[ JWWS KWLM \PM ;Y]IZM KTI[[ [QUXTa PI[ I   IVL
5W^QVO NZWU UW[\ ZM[\ZQK\Q^M \W TMI[\ \PM NW]Z IKKM[[
  UM\PWL
TM^MT[ IZM" <PM UMUJMZ[ WN I KTI[[ QVKT]LM \PM ^IZQIJTM[ IVL
SULYDWH GHIDXOW SURWHFWHG SXEOLF UM\PWL[ LMNQVML QV \PM KTI[[ XT][ IVa\PQVO QVPMZQ\ML
NZWU I []XMZKTI[[

1RWHJHWPRUHGHWDLOVDERXWGHIDXOWDQGSURWHFWHGLQFKDSWHU
 GHSOR\PHQW DQGDSSHQGL[%
 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

?PMVLM[QOVQVO_Q\PQVPMZQ\IVKM
IZMaW]][QVOWZIJ][QVO'
!LTHOUGHSOMEOFTHEREASONSBEHINDTHESERULESWONTBE
REVEALEDUNTILLATERINTHISBOOK FORNOW SIMPLYKNOWINGA
FEWRULESWILLHELPYOUBUILDABETTERINHERITANCEDESIGN

'2USEINHERITANCEWHENONECLASSISAMORESPECIlCTYPE
OFASUPERCLASS%XAMPLE7ILLOWISAMORESPECIlCTYPEOF
4REE SO7ILLOWEXTENDS4REEMAKESSENSE

'2CONSIDERINHERITANCEWHENYOUHAVEBEHAVIOR :MDD=LHGAFLK
IMPLEMENTEDCODE THATSHOULDBESHAREDAMONG ƒ $VXEFODVVH[WHQGVDVXSHUFODVV
MULTIPLECLASSESOFTHESAMEGENERALTYPE%XAMPLE
3QUARE #IRCLE AND4RIANGLEALLNEEDTOROTATEANDPLAY ƒ $VXEFODVVLQKHULWVDOOSXEOLFLQVWDQFH
SOUND SOPUTTINGTHATFUNCTIONALITYINASUPERCLASS3HAPE YDULDEOHVDQGPHWKRGVRIWKHVXSHUFODVVEXW
MIGHTMAKESENSE ANDMAKESFOREASIERMAINTENANCEAND GRHVQRWLQKHULWWKHSULYDWHLQVWDQFHYDULDEOHV
EXTENSIBILITY"EAWARE HOWEVER THATWHILEINHERITANCEIS DQGPHWKRGVRIWKHVXSHUFODVV
ONEOFTHEKEYFEATURESOFOBJECT ORIENTEDPROGRAMMING ƒ ,QKHULWHGPHWKRGVFDQEHRYHUULGGHQLQVWDQFH
ITSNOTNECESSARILYTHEBESTWAYTOACHIEVEBEHAVIORREUSE YDULDEOHVFDQQRWEHRYHUULGGHQ DOWKRXJKWKH\
)TLLGETYOUSTARTED ANDOFTENITSTHERIGHTDESIGNCHOICE FDQEHUHGHILQHGLQWKHVXEFODVVEXWWKDW·V
BUTDESIGNPATTERNSWILLHELPYOUSEEOTHERMORESUBTLE QRWWKHVDPHWKLQJDQGWKHUH·VDOPRVWQHYHUD
ANDmEXIBLEOPTIONS)FYOUDONTKNOWABOUTDESIGN QHHGWRGRLW
PATTERNS AGOODFOLLOW ONTOTHISBOOKWOULDBE(EAD&IRST
$ESIGN0ATTERNS ƒ 8VHWKH,6$WHVWWRYHULI\WKDW\RXU
LQKHULWDQFHKLHUDUFK\LVYDOLG,I;H[WHQGV<
WKHQ;,6$<PXVWPDNHVHQVH
'2127USEINHERITANCEJUSTSOTHATYOUCANREUSE
CODEFROMANOTHERCLASS IFTHERELATIONSHIPBETWEENTHE ƒ 7KH,6$UHODWLRQVKLSZRUNVLQRQO\RQH
SUPERCLASSANDSUBCLASSVIOLATEEITHEROFTHEABOVETWO GLUHFWLRQ$+LSSRLVDQ$QLPDOEXWQRWDOO
RULES&OREXAMPLE IMAGINEYOUWROTESPECIALPRINTING $QLPDOVDUH+LSSRV
CODEINTHE!LARMCLASSANDNOWYOUNEEDPRINTINGCODE ƒ :KHQDPHWKRGLVRYHUULGGHQLQDVXEFODVV
INTHE0IANOCLASS SOYOUHAVE0IANOEXTEND!LARMSOTHAT DQGWKDWPHWKRGLVLQYRNHGRQDQLQVWDQFHRI
0IANOINHERITSTHEPRINTINGCODE4HATMAKESNOSENSE! WKHVXEFODVVWKHRYHUULGGHQYHUVLRQRIWKH
0IANOISNOTAMORESPECIlCTYPEOF!LARM3OTHEPRINTING PHWKRGLVFDOOHG 7KHORZHVWRQHZLQV
CODESHOULDBEINA0RINTERCLASS THATALLPRINTABLEOBJECTS
CANTAKEADVANTAGEOFVIAA(!3 !RELATIONSHIP ƒ ,IFODVV%H[WHQGV$DQG&H[WHQGV%FODVV
%,6$FODVV$DQGFODVV&,6$FODVV%DQG
FODVV&DOVR,6$FODVV$
'2127USEINHERITANCEIFTHESUBCLASSANDSUPERCLASS
DONOTPASSTHE)3 !TEST!LWAYSASKYOURSELFIFTHESUBCLASS
)3 !MORESPECIlCTYPEOFTHESUPERCLASS%XAMPLE4EA)3
!"EVERAGEMAKESSENSE"EVERAGE)3 !4EADOESNOT

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
H[SORLWLQJWKHSRZHURI REMHFWV

;W_PI\LWM[ITT\PQ[
QVPMZQ\IVKMZMITTaJ]aaW]'
9OUGETALOTOF//MILEAGEBYDESIGNING
WITHINHERITANCE9OUCANGETRIDOFDUPLICATE
CODEBYABSTRACTINGOUTTHEBEHAVIORCOMMON
TOAGROUPOFCLASSES ANDSTICKINGTHATCODE
 <RXDYRLGGXSOLFDWH
INASUPERCLASS4HATWAY WHENYOUNEEDTO
MODIFYIT YOUHAVEONLYONEPLACETOUPDATE FRGH
ANDTHECHANGEISMAGICALLYREmECTEDINALLTHE 3XWFRPPRQFRGHLQRQHSODFHDQGOHW
CLASSESTHATINHERITTHATBEHAVIOR7ELL THERES WKHVXEFODVVHVLQKHULWWKDWFRGHIURPD
NOMAGICINVOLVED BUTITISPRETTYSIMPLE
VXSHUFODVV:KHQ\RXZDQWWRFKDQJHWKDW

Licensed by
MAKETHECHANGEANDCOMPILETHECLASS
AGAIN4HATSIT9OUDONTHAVETOTOUCHTHE EHKDYLRU\RXKDYHWRPRGLI\LWLQRQO\
SUBCLASSES RQHSODFHDQGHYHU\ERG\HOVH LHDOOWKH
VXEFODVVHV VHHWKHFKDQJH
*USTDELIVERTHENEWLY CHANGEDSUPERCLASS AND

Eduard Simons
ALLCLASSESTHATEXTENDITWILLAUTOMATICALLYUSE
THENEWVERSION  <RXGHÀQHDFRPPRQ
!*AVAPROGRAMISNOTHINGBUTAPILEOFCLASSES SURWRFROIRUDJURXSRI
SOTHESUBCLASSESDONTHAVETOBERECOMPILED
INORDERTOUSETHENEWVERSIONOFTHE
FODVVHV

104038
SUPERCLASS!SLONGASTHESUPERCLASSDOESNT 8PZKDW
BREAKANYTHINGFORTHESUBCLASS EVERYTHINGS WKHKHFNGRHV
7+$7PHDQ"
lNE7ELLDISCUSSWHATTHEWORD@BREAK
MEANSINTHISCONTEXT LATERINTHEBOOK&OR
NOW THINKOFITASMODIFYINGSOMETHINGIN
THESUPERCLASSTHATTHESUBCLASSISDEPENDING
ON LIKEAPARTICULARMETHODSARGUMENTSOR
RETURNTYPE ORMETHODNAME ETC

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

1VPMZQ\IVKMTM\[aW]O]IZIV\MM\PI\
ITTKTI[[M[OZW]XML]VLMZIKMZ\IQV
[]XMZ\ aXMPI^MITT\PMUM\PWL[\PI\
\PM[]XMZ\ aXMPI[
1VW\PMZ_WZL[aW]LMNQVMIKWUUWVXZW\WKWTNWZI $QG,FDUHEHFDXVH
[M\WNKTI[[M[ZMTI\ML\PZW]OPQVPMZQ\IVKM
"ECAUSEYOUGETTOTAKEADVANTAGEOF
7HENYOUDElNEMETHODSINASUPERCLASS THATCANBE POLYMORPHISM
INHERITEDBYSUBCLASSES YOUREANNOUNCINGAKINDOF
PROTOCOLTOOTHERCODETHATSAYS h!LLMYSUBTYPESIE
SUBCLASSES CANDOTHESETHINGS WITHTHESEMETHODS :KLFKPDWWHUVWRPH
THATLOOKLIKETHISv EHFDXVH
)NOTHERWORDS YOUESTABLISHACONTRACT "ECAUSEY OUGETTOREFERTOASUBCLASS
#LASS!NIMALESTABLISHESACOMMONPROTOCOLFORALL OBJECTUSINGAREFERENCEDECLAREDASTHE
!NIMALSUBTYPES SUPERTYPE

RUOGWKDW
$QLPDO
$QGWKDWPHDQVWRPH
<RX·UHWHOOLQJWKHZ HVHIRXU
PDNH1RLVH
DQ\$QLPDOFDQGRWKWKHPHWKRG 9OUGETTOWRITEREALLYmEXIBLECODE
WKLQJV7KDWLQFOXGHVQW\SHV
HDW
VOHHS #ODETHATSCLEANERMOREEFlCIENT
URDP DUJXPHQWVDQGUHWXU SIMPLER #ODETHATSNOTJUSTEASIERTO
DEVELOP BUTALSOMUCH MUCHEASIERTO
EXTEND INWAYSYOUNEVERIMAGINEDAT
!NDREMEMBER WHENWESAYANY!NIMAL WEMEAN THETIMEYOUORIGINALLYWROTEYOURCODE
!NIMALANDANYCLASSTHATEXTENDSFROM!NIMAL7HICH 4HATMEANSYOUCANTAKETHATTROPICAL
AGAINMEANS ANYCLASSTHATHAS!NIMALSOMEWHEREABOVEIT VACATIONWHILEYOURCO WORKERSUPDATE
INTHEINHERITANCEHIERARCHY THEPROGRAM ANDYOURCO WORKERSMIGHT
"UTWERENOTEVENATTHEREALLYCOOLPARTYET BECAUSE NOTEVENNEEDYOURSOURCECODE
WESAVEDTHEBESTˆPOLYMORPHISMˆFORLAST
9OULLSEEHOWITWORKSONTHENEXTPAGE
7HENYOUDElNEASUPERTYPEFORAGROUPOFCLASSES
ANYSUBCLASSOFTHATSUPERTYPECANBESUBSTITUTEDWHERETHE 7EDONTKNOWABOUTYOU BUT
SUPERTYPEISEXPECTED PERSONALLY WElNDTHEWHOLE
TROPICALVACATIONTHING
3AY WHAT
PARTICULARLYMOTIVATING
$ONTWORRY WERENOWHERENEARDONEEXPLAININGIT
4WOPAGESFROMNOW YOULLBEANEXPERT

:KHQZHVD\´DOOWKHPHWKRGVµZHPHDQ´DOOWKHLQKHULWDEOHPHWKRGVµZKLFK
IRUQRZDFWXDOO\PHDQV´DOOWKHSXEOLFPHWKRGVµDOWKRXJKODWHUZH·OOUHILQHWKDW
GHILQLWLRQDELWPRUH
\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
WKHZD\SRO\PRUSKLVPZRUNV

7KHVWHSVRIREMHFW
GHFODUDWLRQDQGDVVLJQPHQW

 
7RVHHKRZSRO\PRUSKLVP 
ZRUNVZHKDYHWRVWHSEDFN 'RJP\'RJ QHZ'RJ 
DQGORRNDWWKHZD\ZH
QRUPDOO\GHFODUHDUHIHUHQFH
DQGFUHDWHDQREMHFW 'HFODUHDUHIHUHQFH
 YDULDEOH

'RJP\'RJ QHZ'RJ 
4ELLSTHE*6-TOALLOCATESPACEFORA
REFERENCEVARIABLE4HEREFERENCEVARIABLE
IS FOREVER OFTYPE$OG)NOTHERWORDS eq<g_
AREMOTECONTROLTHATHASBUTTONSTO
CONTROLA$OG BUTNOTA#ATORA"UTTON
ORA3OCKET 'RJ

 &UHDWHDQREMHFW
'RJP\'RJ QHZ'RJ 
4ELLSTHE*6-TOALLOCATESPACEFOR
ANEW$OGOBJECTONTHEGARBAGE
COLLECTIBLEHEAP

'RJREMHFW

/LQNWKHREMHFW
 DQGWKHUHIHUHQFH
'RJP\'RJ QHZ'RJ 
!SSIGNSTHENEW$OGTOTHEREFER
ENCEVARIABLEMY$OG)NOTHERWORDS
PROGRAMTHEREMOTECONTROL

'RJREMHFW
eq<g_

'RJ

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

7KHLPSRUWDQWSRLQWLVWKDWWKH
UHIHUHQFHW\SH$1'WKHREMHFW
W\SHDUHWKHVDPH
,QWKLVH[DPSOHERWKDUH'RJ

eq<g_ 'R
JREMHFW
'RJ

7KHVHWZRDUHWKHVDPHW\SH7KHUHIHUHQFH
YDULDEOHW\SHLVGHFODUHGDV'RJDQGWKHREMHFW
LVFUHDWHGDVQHZ'RJ 

%XWZLWKSRO\PRUSKLVPWKH
UHIHUHQFHDQGWKHREMHFWFDQ
EHGLIIHUHQW
$QLPDOP\'RJ QHZ'RJ 

eq<g_ 'R
JREMHFW
$QLPDO

7KHVHWZRDUH127WKHVDPHW\SH7KH
UHIHUHQFHYDULDEOHW\SHLVGHFODUHGDV$QLPDO
EXWWKHREMHFWLVFUHDWHGDVQHZ'RJ 

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
SRO\PRUSKLVPLQDFWLRQ

:LWKSRO\PRUSKLVPWKHUHIHUHQFH
W\SHFDQEHDVXSHUFODVVRIWKH
DFWXDOREMHFWW\SH XKQRSH
6WLOOQRWJHWWLQ·LW
7HENYOUDECLAREAREFERENCEVARIABLE
ANYOBJECTTHATPASSESTHE)3 !TESTFORTHE
DECLAREDTYPEOFTHEREFERENCEVARIABLE
CANBEASSIGNEDTOTHATREFERENCE)N
OTHERWORDS ANYTHINGTHATEXTENDSTHE
DECLAREDREFERENCEVARIABLETYPECAN
BEASSIGNEDTOTHEREFERENCE
VARIABLE4HISLETSYOUDO
THINGSLIKEMAKEPOLYMORPHIC
ARRAYS

GV
Q LPD O  ,Q  RWKHUZRDUO
W\SH$ $QLP
2.2.PD\EHDQH[DPSOHZLOOKHOS
H FOD U H  D Q DUUD\RIKROGREMHFWVRIW\SH
' KDWZLOO
DQDUUD\W
$QLPDO>@DQLPDOV QHZ$QLPDO>@

DQLPDOV>@ QHZ'RJ 

%XWORRNZKDW\RXJHWWRGR\RXFDQSXW$1<
DQLPDOV>@ QHZ&DW 

DQLPDOV>@ QHZ:ROI  VXEFODVVRI$QLPDOLQWKH$QLPDODUUD\


DQLPDOV>@ QHZ+LSSR 

DQLPDOV>@ QHZ/LRQ  $QGKHUH·VW


UDLVRQG·rWU KHEHVWSRO\PRUSKLFSD
JHWWRORRSWHIRUWKHZKROHH[DPSOHUW WKH
RIWKH$QLP KURXJKWKHDUUD\DQG \RX
REMHFWGRHV DOFODVVPHWKRGVDQGHFDOORQH
IRU LQWL LDQLPDOVOHQJWKL ^
WKHULJKWWK YHU\
 LQJ
DQLPDOV>L@HDW 

 :KHQ¶L·LVD'RJLVDWLQGH[LQWKHDUUD\VR
DQLPDOV>L@URDP  \RXJHWWKH'RJ·VHDW PHWKRG:KHQ¶L·LV\RX
JHWWKH&DW·VHDW PHWKRG
`
6DPHZLWKURDP 

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

%XWZDLW7KHUH·VPRUH
<RXFDQKDYHSRO\PRUSKLF
DUJXPHQWVDQGUHWXUQW\SHV
)FYOUCANDECLAREAREFERENCEVARIABLE
OFASUPERTYPE SAY !NIMAL ANDASSIGNA
SUBCLASSOBJECTTOIT SAY $OG THINKOFHOW
THATMIGHTWORKWHENTHEREFERENCEISAN
ARGUMENTTOAMETHOD

FODVV9HW^
Y
SXEOLFYRLGJLYH6KRW $QLPDOD ^
7KH$QLPDOSDU
GRKRUULEOHWKLQJVWRWKH$QLPDODW $QLPDOW\SHDVWDPKHHWHUFDQWDNH$1<
WKHRWKHUHQGRIWKHµD¶SDUDPHWHU WKH9HWLVGRQHJL DUJXPHQW$QGZKHQ
$QLPDOWRPDNH1RLYLQJWKHVKRWLWWHOOVWKH
DPDNH1RLVH  LVUHDOO\RXWWKHUH VH DQGZKDWHYHU$QLPDO
ZKRVHPDNH1RLVH P RQWKHKHDSWKDW·
` HWKRGZLOOUXQ V
`

FODVV3HW2ZQHU^
KRGFDQWDNHDQ\
SXEOLFYRLGVWDUW ^
7KH9HW·VJLYH6KRW PHWQJDVWKHREMHFW
9HWY QHZ9HW  $QLPDO\RXJLYHLW$VORPHQWLVDVXEFODVVRI
\RXSDVVLQDVWKHDUJX
'RJG QHZ'RJ  $QLPDOLWZLOOZRUN
+LSSRK QHZ+LSSR 

YJLYH6KRW G  'RJ·VPDNH1RLVH UXQV


YJLYH6KRW K  +LSSR·VPDNH1RLVH UXQV
`

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
H[SORLWLQJWKHSRZHURI SRO\PRUSKLVP

12:,JHWLW,I,ZULWH
P\FRGHXVLQJSRO\PRUSKLFDUJXPHQWV
ZKHUH,GHFODUHWKHPHWKRGSDUDPHWHUDVD
VXSHUFODVVW\SH,FDQSDVVLQDQ\VXEFODVVREMHFWDW
UXQWLPH&RRO%HFDXVHWKDWDOVRPHDQV,FDQZULWHP\
FRGHJRRQYDFDWLRQDQGVRPHRQHHOVHFDQDGGQHZ
VXEFODVVW\SHVWRWKHSURJUDPDQGP\PHWKRGVZLOO
VWLOOZRUN WKHRQO\GRZQVLGHLV,·PMXVWPDNLQJOLIH
HDVLHUIRUWKDWLGLRW-LP 

?Q\PXWTaUWZXPQ[UaW]KIV_ZQ\MKWLM\PI\LWM[V¼\
PI^M\WKPIVOM_PMVaW]QV\ZWL]KMVM_[]JKTI[[
\aXM[QV\W\PMXZWOZIU
2EMEMBERTHAT6ETCLASS)FYOUWRITETHAT6ETCLASSUSING
ARGUMENTSDECLAREDASTYPE!NIMAL YOURCODECANHANDLEANY
!NIMALSUBCLASS4HATMEANSIFOTHERSWANTTOTAKEADVANTAGEOF
YOUR6ETCLASS ALLTHEYHAVETODOISMAKESURETHEIRNEW!NIMAL
TYPESEXTENDCLASS!NIMAL4HE6ETMETHODSWILLSTILLWORK EVEN
THOUGHTHE6ETCLASSWASWRITTENWITHOUTANYKNOWLEDGEOFTHE
NEW!NIMALSUBTYPESTHE6ETWILLBEWORKINGON

YiX`e
gfn\i
7HYISPOLYMORPHISMGUARANTEEDTOWORKTHISWAY7HYIS
ITALWAYSSAFETOASSUMETHATANYSUBCLASSTYPEWILLHAVETHE
METHODSYOUTHINKYOURECALLINGONTHESUPERCLASSTYPETHE
SUPERCLASSREFERENCETYPEYOUREUSINGTHEDOTOPERATORON 

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

WKHUH DUH QR
'XPE 4XHVWLRQV
Q: !RETHEREANYPRACTICALLIMITS Q: #ANYOUEXTENDANYCLASS/R Q: 7HYWOULDYOUEVERWANTTO
ONTHELEVELSOFSUBCLASSING(OW ISITLIKECLASSMEMBERSWHEREIFTHE MAKEAlNALCLASS7HATADVANTAGE
DEEPCANYOUGO CLASSISPRIVATEYOUCANTINHERITIT WOULDTHEREBEINPREVENTINGACLASS
FROMBEINGSUBCLASSED
A: )FYOULOOKINTHE*AVA!0) A:
YOULLSEETHATMOSTINHERITANCE
HIERARCHIESAREWIDEBUTNOTDEEP
4HERESNOSUCHTHINGASA
PRIVATECLASS EXCEPTINAVERYSPECIAL
CASECALLEDANINNERCLASS THATWE
A: 4YPICALLY YOUWONTMAKEYOUR
CLASSESFINAL"UTIFYOUNEEDSECURITY
-OSTARENOMORETHANONEORTWO HAVENTLOOKEDATYET"UTTHEREARE ˆTHESECURITYOFKNOWINGTHATTHE
LEVELSDEEP ALTHOUGHTHEREARE THREETHINGSTHATCANPREVENTACLASS METHODSWILLALWAYSWORKTHEWAY
EXCEPTIONSESPECIALLYINTHE'5) FROMBEINGSUBCLASSED THATYOUWROTETHEMBECAUSETHEY
CLASSES 9OULLCOMETOREALIZETHAT
4HEFIRSTISACCESSCONTROL%VENTHOUGH CANTBEOVERRIDDEN AFINALCLASS
ITUSUALLYMAKESMORESENSETOKEEP
ACLASSCANTBEMARKEDSULYDWH A WILLGIVEYOUTHAT!LOTOFCLASSESIN
YOURINHERITANCETREESSHALLOW BUT
CLASSCANBENON PUBLICWHATYOU THE*AVA!0)AREFINALFORTHATREASON
THEREISNTAHARDLIMITWELL NOTONE
GETIFYOUDONTDECLARETHECLASSAS 4HE3TRINGCLASS FOREXAMPLE ISFINAL
THATYOUDEVERRUNINTO  BECAUSE WELL IMAGINETHEHAVOCIF
SXEOLF !NON PUBLICCLASSCANBE
SUBCLASSEDONLYBYCLASSESINTHE SOMEBODYCAMEALONGANDCHANGED
Q: (EY )JUSTTHOUGHTOF
SOMETHINGIFYOUDONTHAVE
SAMEPACKAGEASTHECLASS#LASSESIN
ADIFFERENTPACKAGEWONTBEABLETO
THEWAY3TRINGSBEHAVE

ACCESSTOTHESOURCECODEFORACLASS
BUTYOUWANTTOCHANGETHEWAYA
SUBCLASSOREVENUSE FORTHATMATTER
THENON PUBLICCLASS
Q: #ANYOUMAKEAMETHODlNAL
WITHOUTMAKINGTHEWHOLECLASS
METHODOFTHATCLASSWORKS COULD 4HESECONDTHINGTHATSTOPSACLASS lNAL
YOUUSESUBCLASSINGTODOTHAT4O FROMBEINGSUBCLASSEDISTHEKEYWORD
EXTENDTHEhBADvCLASSANDOVERRIDE MODIFIER¿QDO!FINALCLASSMEANS
THEMETHODWITHYOUROWNBETTER
CODE
THATITSTHEENDOFTHEINHERITANCE
LINE.OBODY EVER CANEXTENDAFINAL
A: )FYOUWANTTOPROTECTASPECIFIC
METHODFROMBEINGOVERRIDDEN MARK
CLASS THEMETHODWITHTHE¿QDOMODIFIER

A: 9EP4HATSONECOOLFEATURE
OF// ANDSOMETIMESITSAVESYOU
4HETHIRDISSUEISTHATIFACLASSHAS
ONLYSULYDWHCONSTRUCTORSWELL
-ARKTHEWHOLECLASSASFINALIFYOU
WANTTOGUARANTEETHATNONEOFTHE
LOOKATCONSTRUCTORSINCHAPTER IT METHODSINTHATCLASSWILLEVERBE
FROMHAVINGTOREWRITETHECLASS OVERRIDDEN
CANTBESUBCLASSED
FROMSCRATCH ORTRACKDOWNTHE
PROGRAMMERWHOHIDTHESOURCECODE

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
RYHUULGLQJPHWKRGV

3MMXQVO\PMKWV\ZIK\"Z]TM[NWZW^MZZQLQVO
7HENYOUOVERRIDEAMETHODFROMASUPERCLASS YOUREAGREEINGTO
FULlLLTHECONTRACT4HECONTRACTTHATSAYS FOREXAMPLE h)TAKENO
ARGUMENTSAND)RETURNABOOLEANv)NOTHERWORDS THEARGUMENTS $SSOLDQFH
ANDRETURNTYPESOFYOUROVERRIDINGMETHODMUSTLOOKTOTHEOUTSIDE
WORLDEXACTLYLIKETHEOVERRIDDENMETHODINTHESUPERCLASS ERROHDQWXUQ2Q
4HEMETHODSARETHECONTRACT ERROHDQWXUQ2II
)FPOLYMORPHISMISGOINGTOWORK THE4 OASTERSVERSIONOFTHE
OVERRIDDENMETHODFROM!PPLIANCEHASTOWORKATRUNTIME
2EMEMBER THECOMPILERLOOKSATTHEREFERENCETYPETODECIDE
WHETHERYOUCANCALLAPARTICULARMETHODONTHATREFERENCE7ITH
AN!PPLIANCEREFERENCETOA4OASTER THECOMPILERCARESONLYIFCLASS
!PPLIANCEHASTHEMETHODYOUREINVOKINGONAN!PPLIANCEREFERENCE 7RDVWHU
"UTATRUNTIME THE*6-LOOKSNOTATTHEREFERENCETYPE!PPLIANCE BUT
ATTHEACTUAL4OASTEROBJECTONTHEHEAP3OIFTHECOMPILERHASALREADY ERROHDQWXUQ2Q LQWOHYHO
APPROVEDTHEMETHODCALL THEONLYWAYITCANWORKISIFTHEOVERRIDING
 LV  1 2 7  DQ
METHODHASTHESAMEARGUMENTSANDRETURNTYPES/THERWISE 7KLV H 
RYHUULG
SOMEONEWITHAN!PPLIANCEREFERENCEWILLCALLTURN/N ASANO
JHWKH
ARGMETHOD EVENTHOUGHTHERESAVERSIONIN4OASTERTHATTAKESAN &DQ·WFQKWDVQ LQDQ
INT7HICHONEISCALLEDATRUNTIME4HEONEIN!PPLIANCE)NOTHER DUJXPH LQJPHWKRG
WORDS THETURN/NINTLEVEL METHODIN4OASTERISNOTANOVERRIDE RYHUULG 7KLVLVDFWXDOO\DOHJDO
RYHU/2$'EXWQRWD
RYHU5,'( Q
 $UJXPHQWVPXVWEHWKHVDPHDQGUHWXUQ
W\SHVPXVWEHFRPSDWLEOH
7KHFRQWUDFWRIVXSHUFODVVGH¿QHVKRZRWKHUFRGHFDQXVHDPHWKRG
:KDWHYHUWKHVXSHUFODVVWDNHVDVDQDUJXPHQWWKHVXEFODVVRYHU
ULGLQJWKHPHWKRGPXVWXVHWKDWVDPHDUJXPHQW$QGZKDWHYHUWKH
VXSHUFODVVGHFODUHVDVDUHWXUQW\SHWKHRYHUULGLQJPHWKRGPXVWGH $SSOLDQFH
FODUHHLWKHUWKHVDPHW\SHRUDVXEFODVVW\SH5HPHPEHUDVXEFODVV
REMHFWLVJXDUDQWHHGWREHDEOHWRGRDQ\WKLQJLWVVXSHUFODVVGHFODUHV SXEOLFERROHDQWXUQ2Q
VRLW¶VVDIHWRUHWXUQDVXEFODVVZKHUHWKHVXSHUFODVVLVH[SHFWHG
SXEOLFERROHDQWXUQ2Q
 7KHPHWKRGFDQ·WEHOHVVDFFHVVLEOH
7KDWPHDQVWKHDFFHVVOHYHOPXVWEHWKHVDPHRUIULHQGOLHU7KDW
PHDQV\RXFDQ¶WIRUH[DPSOHRYHUULGHDSXEOLFPHWKRGDQGPDNH
LWSULYDWH:KDWDVKRFNWKDWZRXOGEHWRWKHFRGHLQYRNLQJZKDWLW

127/(*$/
WKLQNV DWFRPSLOHWLPH LVDSXEOLFPHWKRGLIVXGGHQO\DWUXQWLPH
WKH-90VODPPHGWKHGRRUVKXWEHFDXVHWKHRYHUULGLQJYHUVLRQ 7RDVWHU
FDOOHGDWUXQWLPHLVSULYDWH ·V Q R W D O H J DO
,W FDXVH\RXVV
6RIDUZH¶YHOHDUQHGDERXWWZRDFFHVVOHYHOVSULYDWHDQGSXEOLF RYHUULGHEGHW KHDFFH SULYDWHERROHDQWXUQ2Q
7KHRWKHUWZRDUHLQWKHGHSOR\PHQWFKDSWHU 5HOHDVH\RXU&RGH  UHVWULFWH LVLWDOHJDO
DQGDSSHQGL[%7KHUH¶VDOVRDQRWKHUUXOHDERXWRYHUULGLQJUHODWHG OHYHO1RU'EHFDXVH
WRH[FHSWLRQKDQGOLQJEXWZH¶OOZDLWXQWLOWKHFKDSWHURQH[FHSWLRQV RYHU/2$·WFKDQJH
5LVN\%HKDYLRU WRFRYHUWKDW \RXGLGQ V
DUJXPHQW
 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

7^MZTWILQVOIUM\PWL
-ETHODOVERLOADINGISNOTHINGMORETHANHAVING
TWOMETHODSWITHTHESAMENAMEBUTDIFFERENT
ARGUMENTLISTS0ERIOD4HERESNOPOLYMORPHISM
INVOLVEDWITHOVERLOADEDMETHODS $QRYHUORDGHGPHWKRGLV
/VERLOADINGLETSYOUMAKEMULTIPLEVERSIONS
OFAMETHOD WITHDIFFERENTARGUMENTLISTS FOR MXVWDGLIIHUHQWPHWKRGWKDW
CONVENIENCETOTHECALLERS&OREXAMPLE IFYOU KDSSHQVWRKDYHWKHVDPH
HAVEAMETHODTHATTAKESONLYANINT THECALLING
CODEHASTOCONVERT SAY ADOUBLEINTOANINT PHWKRGQDPH,WKDVQRWKLQJ
BEFORECALLINGYOURMETHOD"UTIFYOUOVERLOADED WRGRZLWKLQKHULWDQFHDQG
THEMETHODWITHANOTHERVERSIONTHATTAKESA
DOUBLE THENYOUVEMADETHINGSEASIERFORTHE SRO\PRUSKLVP$QRYHUORDGHG
CALLER9OULLSEEMOREOFTHISWHENWELOOKINTO
CONSTRUCTORSINTHEOBJECTLIFECYCLECHAPTER PHWKRGLV127WKHVDPHDV
3INCEANOVERLOADINGMETHODISNTTRYINGTO DQRYHUULGGHQPHWKRG
FULlLLTHEPOLYMORPHISMCONTRACTDElNEDBYITS
SUPERCLASS OVERLOADEDMETHODSHAVEMUCHMORE
mEXIBILITY

 7KHUHWXUQW\SHVFDQEH /HJDOH[DPSOHVRIPHWKRG
GLIIHUHQW RYHUORDGLQJ
<RX¶UHIUHHWRFKDQJHWKHUHWXUQW\SHVLQ SXEOLFFODVV2YHUORDGV^
RYHUORDGHGPHWKRGVDVORQJDVWKHDUJXPHQWOLVWV
DUHGLIIHUHQW 6WULQJXQLTXH,'

 <RXFDQ·WFKDQJH21/<WKH SXEOLFLQWDGG1XPV LQWDLQWE ^


UHWXUQDE
UHWXUQW\SH `
,IRQO\WKHUHWXUQW\SHLVGLIIHUHQWLW¶VQRWD
YDOLGRYHUORDG²WKHFRPSLOHUZLOODVVXPH SXEOLFGRXEOHDGG1XPV GRXEOHDGRXEOHE ^
\RX¶UHWU\LQJWRRYHUULGHWKHPHWKRG$QGHYHQ UHWXUQDE
WKDWZRQ¶WEHOHJDOXQOHVVWKHUHWXUQW\SHLV `
DVXEW\SHRIWKHUHWXUQW\SHGHFODUHGLQWKH
VXSHUFODVV7RRYHUORDGDPHWKRG\RX0867 SXEOLFYRLGVHW8QLTXH,' 6WULQJWKH,' ^
FKDQJHWKHDUJXPHQWOLVWDOWKRXJK\RXFDQ ORWVRIYDOLGDWLRQFRGHDQGWKHQ
FKDQJHWKHUHWXUQW\SHWRDQ\WKLQJ XQLTXH,' WKH,'
`

 <RXFDQYDU\WKHDFFHVV SXEOLFYRLGVHW8QLTXH,' LQWVV1XPEHU ^


OHYHOVLQDQ\GLUHFWLRQ 6WULQJQXP6WULQJ ³´VV1XPEHU
VHW8QLTXH,' QXP6WULQJ 
<RX¶UHIUHHWRRYHUORDGDPHWKRGZLWKDPHWKRG `
WKDW¶VPRUHUHVWULFWLYH,WGRHVQ¶WPDWWHUVLQFHWKH `
QHZPHWKRGLVQ¶WREOLJDWHGWRIXO¿OOWKHFRQWUDFWRI
WKHRYHUORDGHGPHWKRG

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
H[HUFLVH0L[HG0HVVDJHV
!SHORT*AVAPROGRAMISLISTEDBELOW/NEBLOCKOF
8Q[HG THEPROGRAMISMISSING9OURCHALLENGEISTOMATCH
MInZAJM[ THECANDIDATEBLOCKOFCODEONTHELEFT WITHTHE
OUTPUTTHATYOUDSEEIFTHEBLOCKWEREINSERTED
.OTALLTHELINESOFOUTPUTWILLBEUSED ANDSOMEOF
1dQ^OU_Q D   THELINESOFOUTPUTMIGHTBEUSEDMORETHANONCE
E   $RAWLINESCONNECTINGTHECANDIDATEBLOCKSOF
D  
CODEWITHTHEIRMATCHINGCOMMAND LINEOUTPUT
\PMXZWOZIU"

FODVV$^ FODVV&H[WHQGV%^
LQWLYDU  YRLGP ^
YRLGP ^ 6\VWHPRXWSULQW ´&·VP´ LYDU 
6\VWHPRXWSULQW ´$·VP´  `
` `

Licensed by
YRLGP ^
6\VWHPRXWSULQW ´$·VP´  SXEOLFFODVV0L[HG^
` SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^
YRLGP ^ $D QHZ$ 
6\VWHPRXWSULQW ´$·VP´  %E QHZ% 

Eduard Simons
` &F QHZ& 
` $D QHZ&  KIVLQLI\MKWLM
OWM[PMZM
FODVV%H[WHQGV$^
\PZMMTQVM[

104038
YRLGP ^
6\VWHPRXWSULQW ´%·VP´ 
` `
` `

KWLM EP  W]\X]\"


KIVLQLI\M["
FP 
DP  ` $·VP$·VP&·VP

%·VP$·VP$·VP

`
FP 
FP  $·VP%·VP$·VP
FP 
%·VP$·VP&·VP

`
DP 
EP  %·VP&·VP$·VP
FP  %·VP$·VP&·VP

`
DP  $·VP$·VP&·VP
DP 
DP 

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

"%THE#OMPILER
:KLFKRIWKH$%SDLUVRIPHWKRGVOLVWHGRQWKHULJKWLI
1dQ^OU_Q LQVHUWHGLQWRWKHFODVVHVRQWKHOHIWZRXOGFRPSLOHDQG
SURGXFHWKHRXWSXWVKRZQ" 7KH$PHWKRGLQVHUWHGLQWR
FODVV0RQVWHUWKH%PHWKRGLQVHUWHGLQWRFODVV9DPSLUH

SXEOLFFODVV0RQVWHU7HVW'ULYH^
ERROHDQIULJKWHQ LQWG ^
SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 
6\VWHPRXWSULQWOQ ´DUUUJKµ 
0RQVWHU>@PD QHZ0RQVWHU>@ )
UHWXUQWUXH
PD>@ QHZ9DPSLUH  `
PD>@ QHZ'UDJRQ  ERROHDQIULJKWHQ LQW[ ^
PD>@ QHZ0RQVWHU  * 6\VWHPRXWSULQWOQ ´DELWH"µ 
IRU LQW[ [[ ^ UHWXUQIDOVH
PD>[@IULJKWHQ [  `

`
ERROHDQIULJKWHQ LQW[ ^
` 
) 6\VWHPRXWSULQWOQ ´DUUUJKµ 
`
UHWXUQWUXH
`
FODVV0RQVWHU^ LQWIULJKWHQ LQWI ^
* 6\VWHPRXWSULQWOQ ´DELWH"µ 
) UHWXUQ
` `

FODVV9DPSLUHH[WHQGV0RQVWHU^ ERROHDQIULJKWHQ LQW[ ^



6\VWHPRXWSULQWOQ ´DUUUJKµ 
)
* UHWXUQIDOVH
`
`
ERROHDQVFDUH LQW[ ^
6\VWHPRXWSULQWOQ ´DELWH"µ 
*
FODVV'UDJRQH[WHQGV0RQVWHU^ UHWXUQWUXH
ERROHDQIULJKWHQ LQWGHJUHH ^ `
6\VWHPRXWSULQWOQ ´EUHDWKÀUHµ 
UHWXUQWUXH ERROHDQIULJKWHQ LQW] ^
 6\VWHPRXWSULQWOQ ´DUUUJKµ 
` )
)LOH(GLW:LQGRZ+HOS6DYH<RXUVHOI
)LOH(GLW:LQGRZ+HOS6OHHS UHWXUQWUXH
`
MDYD0RQVWHU7HVW'ULYH
MDYD7HVW$UUD\V `
DELWH" )LML
LVODQG ERROHDQIULJKWHQ E\WHE ^
EUHDWKILUH
LVODQG &R]XPHO * 6\VWHPRXWSULQWOQ ´DELWH"µ 
DUUUJK %HUPXGD
LVODQG UHWXUQWUXH
LVODQG $]RUHV `

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
SX]]OH3RRO3X]]OH

8WWT8]bbTM
9OURJOBISTOTAKECODESNIPPETSFROMTHEPOOLANDPLACETHEMINTO
THEBLANKLINESINTHECODE9OUMAYUSETHESAMESNIPPETMORE
THANONCE ANDYOUMIGHTNOTNEEDTOUSEALLTHESNIPPETS9OUR
GOALISTOMAKEASETOFCLASSESTHATWILLCOMPILEANDRUNTOGETHER
ASAPROGRAM$ONTBEFOOLEDnTHISONESHARDERTHANITLOOKS

SXEOLFFODVV5RZERDWBBBBBBBBBBBBBBBB^ SXEOLFFODVV7HVW%RDWV^
SXEOLFBBBBBBBBBBBURZ7KH%RDW ^ BBBBBBBBBBBBBBBBBBBPDLQ 6WULQJ>@DUJV ^
6\VWHPRXWSULQW ´VWURNHQDWDVKDµ  BBBBBBBBBE QHZ%RDW 
` 6DLOERDWE QHZBBBBBBBBBB 
`
5RZERDWBBBBBBBB QHZ5RZERDW 
SXEOLFFODVVBBBBBBBB^ EVHW/HQJWK  
SULYDWHLQWBBBBBBBBBB EBBBBBBBBBB 
BBBBBBBYRLGBBBBBBBBB BBBBBB ^ EBBBBBBBBBB 
OHQJWK OHQ BBBBBBBPRYH 
` `
SXEOLFLQWJHW/HQJWK ^ `

BBBBBBBBBBBBBBBBB SXEOLFFODVVBBBBBBBBBBBBBBBBBB%RDW^
` SXEOLFBBBBBBBBBBBBBBBB ^
SXEOLFBBBBBBBBBBBPRYH ^ 6\VWHPRXWSULQW ´BBBBBBBBBBBµ 
6\VWHPRXWSULQW ´BBBBBBBBBBBµ  `
`
`
`
 /54054 GULIWGULIWKRLVWVDLO

2OWBOAT
3AILBOAT SUBCLASSES

"OAT 4ESTBOATS EXTENDS


INTLEN DRIFT HOISTSAIL
RETURN STROKENATASHA ROW4HE"OAT
CONTINUE INTLENGTH 3TRING MOVE
B BREAK INTB SET,ENGTH
INTB VOID
INTB PUBLIC
B B LENGTH INT STATIC GET,ENGTH
INTB PRIVATE
LEN

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
LQKHULWDQFHDQGSRO\PRUSKLVP

"%THE#OMPILER
6HWZLOOZRUN

6HWZLOOQRWFRPSLOHEHFDXVHRI9DPSLUH¶VUHWXUQ
%XERCISE W\SH LQW 
3OLUTIONS 7KH9DPSLUH¶VIULJKWHQ PHWKRG % LVQRWDOHJDO
RYHUULGH25RYHUORDGRI0RQVWHU¶VIULJKWHQ PHWKRG
&KDQJLQJ21/<WKHUHWXUQW\SHLVQRWHQRXJK
WRPDNHDYDOLGRYHUORDGDQGVLQFHDQLQWLVQRW
FRPSDWLEOHZLWKDERROHDQWKHPHWKRGLVQRWDYDOLG
RYHUULGH 5HPHPEHULI\RXFKDQJH21/<WKHUHWXUQ
W\SHLWPXVWEHWRDUHWXUQW\SHWKDWLVFRPSDWLEOH
ZLWKWKHVXSHUFODVVYHUVLRQ¶VUHWXUQW\SHDQGWKHQLW¶V
DQRYHUULGH
6HWVDQGZLOOFRPSLOHEXWSURGXFH
DUUUJK
EUHDWK¿UH
DUUUJK
5HPHPEHUFODVV9DPSLUHGLGQRWRYHUULGHFODVV
0RQVWHU¶VIULJKWHQ PHWKRG 7KHIULJKWHQ PHWKRG
LQ9DPSLUH¶VVHWWDNHVDE\WHQRWDQLQW

KWLM
EP  W]\X]\"
KIVLQLI\M[" FP 
DP  ` $·VP$·VP&·VP

8Q[HG %·VP$·VP$·VP

`
FP 

MInZAJM[ FP 
FP 
$·VP%·VP$·VP

%·VP$·VP&·VP
DP 
EP  %·VP&·VP$·VP

`
FP  %·VP$·VP&·VP

DP  $·VP$·VP&·VP
DP 
DP 

\RXDUHKHUH 

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.
SX]]OHDQVZHUV

SXEOLFFODVV5RZERDWH[WHQGV%RDW^
SXEOLFYRLGURZ7KH%RDW ^
6\VWHPRXWSULQW ´VWURNHQDWDVKDµ 
`
`
SXEOLFFODVV%RDW^
SULYDWHLQWOHQJWK
SXEOLFYRLGVHW/HQJWK LQWOHQ ^
OHQJWK OHQ
`
SXEOLFLQWJHW/HQJWK ^
UHWXUQOHQJWK
`
SXEOLFYRLGPRYH ^
6\VWHPRXWSULQW ´GULIWµ 
`
`

SXEOLFFODVV7HVW%RDWV^
SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^
%RDWE QHZ%RDW 
6DLOERDWE QHZ6DLOERDW 
5RZERDWE QHZ5RZERDW 
EVHW/HQJWK  
EPRYH 
EPRYH 
EPRYH 
`
`
SXEOLFFODVV6DLOERDWH[WHQGV%RDW^
SXEOLFYRLGPRYH ^
6\VWHPRXWSULQW ´KRLVWVDLOµ 
`
`

/54054 GULIWGULIWKRLVWVDLO

 FKDSWHU

Head First Java, 2nd Edition. Head First Java, 2nd Edition, ISBN: 0596009208
Prepared for e.simons@icarin.fiuc.org, Eduard Simons
Copyright © 2005 Bert Bates and Kathy Sierra. This PDF is made available for personal use only during the relevant subscription term, subject to the Safari Terms of Service. Any other use
requires prior written consent from the copyright owner. Unauthorized use, reproduction and/or distribution are strictly prohibited and violate applicable laws. All rights reserved.

Vous aimerez peut-être aussi