SlideShare a Scribd company logo
1 of 62
OObbjjeecctt--OOrriieenntteedd 
PPrrooggrraammmmiinngg:: 
PPoollyymmoorrpphhiissmm 
CChhaapptteerr 1100
WWhhaatt YYoouu WWiillll LLeeaarrnn 
2 
WWhhaatt iiss ppoollyymmoorrpphhiissmm?? 
HHooww ttoo ddeeccllaarree aanndd uussee vviirrttuuaall 
ffuunnccttiioonnss ffoorr aabbssttrraacctt ccllaasssseess
PPrroobblleemm wwiitthh SSuubbccllaasssseess 
 Given the class hierarchy below 
 Consider the existence of a draw function for 
each subclass 
 Consider also an array of references to the 
superclass (which can also point to various 
objects of the subclasses) 
 How do you specify which draw statement to 
be called when using the references 
Rectangle 
3 
Shape class hierarchy 
Circle 
Triangle 
Right Triangle Isosceles Triangle 
Square 
Shape
4 
IInnttrroodduuccttiioonn 
PPoollyymmoorrpphhiissmm 
– EEnnaabblleess ““pprrooggrraammmmiinngg iinn tthhee ggeenneerraall”” 
– TThhee ssaammee iinnvvooccaattiioonn ccaann pprroodduuccee ““mmaannyy 
ffoorrmmss”” ooff rreessuullttss 
IInntteerrffaacceess 
– IImmpplleemmeenntteedd bbyy ccllaasssseess ttoo aassssiiggnn ccoommmmoonn 
ffuunnccttiioonnaalliittyy ttoo ppoossssiibbllyy uunnrreellaatteedd ccllaasssseess
5 
PPoollyymmoorrpphhiissmm 
WWhheenn aa pprrooggrraamm iinnvvookkeess aa mmeetthhoodd 
tthhrroouugghh aa ssuuppeerrccllaassss vvaarriiaabbllee,, 
– tthhee ccoorrrreecctt ssuubbccllaassss vveerrssiioonn ooff tthhee mmeetthhoodd 
iiss ccaalllleedd,, 
– bbaasseedd oonn tthhee ttyyppee ooff tthhee rreeffeerreennccee ssttoorreedd 
iinn tthhee ssuuppeerrccllaassss vvaarriiaabbllee 
TThhee ssaammee mmeetthhoodd nnaammee aanndd ssiiggnnaattuurree 
ccaann ccaauussee ddiiffffeerreenntt aaccttiioonnss ttoo ooccccuurr,, 
– ddeeppeennddiinngg oonn tthhee ttyyppee ooff oobbjjeecctt oonn wwhhiicchh 
tthhee mmeetthhoodd iiss iinnvvookkeedd
6 
PPoollyymmoorrpphhiissmm 
PPoollyymmoorrpphhiissmm eennaabblleess pprrooggrraammmmeerrss ttoo 
ddeeaall iinn ggeenneerraalliittiieess aanndd 
– lleett tthhee eexxeeccuuttiioonn--ttiimmee eennvviirroonnmmeenntt hhaannddllee 
tthhee ssppeecciiffiiccss.. 
PPrrooggrraammmmeerrss ccaann ccoommmmaanndd oobbjjeeccttss ttoo 
bbeehhaavvee iinn mmaannnneerrss aapppprroopprriiaattee ttoo 
tthhoossee oobbjjeeccttss,, 
–wwiitthhoouutt kknnoowwiinngg tthhee ttyyppeess ooff tthhee oobbjjeeccttss 
– ((aass lloonngg aass tthhee oobbjjeeccttss bbeelloonngg ttoo tthhee ssaammee 
iinnhheerriittaannccee hhiieerraarrcchhyy))..
PPoollyymmoorrpphhiissmm PPrroommootteess 
7 
EExxtteennssiibbiilliittyy 
SSooffttwwaarree tthhaatt iinnvvookkeess ppoollyymmoorrpphhiicc 
bbeehhaavviioorr 
– iinnddeeppeennddeenntt ooff tthhee oobbjjeecctt ttyyppeess ttoo wwhhiicchh 
mmeessssaaggeess aarree sseenntt.. 
NNeeww oobbjjeecctt ttyyppeess tthhaatt ccaann rreessppoonndd ttoo 
eexxiissttiinngg mmeetthhoodd ccaallllss ccaann bbee 
– iinnccoorrppoorraatteedd iinnttoo aa ssyysstteemm wwiitthhoouutt 
rreeqquuiirriinngg mmooddiiffiiccaattiioonn ooff tthhee bbaassee ssyysstteemm.. 
–OOnnllyy cclliieenntt ccooddee tthhaatt iinnssttaannttiiaatteess nneeww 
oobbjjeeccttss mmuusstt bbee mmooddiiffiieedd ttoo aaccccoommmmooddaattee 
nneeww ttyyppeess..
Demonstrating PPoollyymmoorrpphhiicc 
8 
BBeehhaavviioorr 
AA ssuuppeerrccllaassss rreeffeerreennccee ccaann bbee aaiimmeedd aatt 
aa ssuubbccllaassss oobbjjeecctt 
– aa ssuubbccllaassss oobbjjeecctt ““iiss--aa”” ssuuppeerrccllaassss oobbjjeecctt 
– tthhee ttyyppee ooff tthhee aaccttuuaall rreeffeerreenncceedd oobbjjeecctt,, 
nnoott tthhee ttyyppee ooff tthhee rreeffeerreennccee,, ddeetteerrmmiinneess 
wwhhiicchh mmeetthhoodd iiss ccaalllleedd 
AA ssuubbccllaassss rreeffeerreennccee ccaann bbee aaiimmeedd aatt aa 
ssuuppeerrccllaassss oobbjjeecctt oonnllyy iiff tthhee oobbjjeecctt iiss 
ddoowwnnccaasstteedd 
VViieeww eexxaammppllee,, FFiigguurree 1100..11
9 
PPoollyymmoorrpphhiissmm 
PPrroommootteess eexxtteennssiibbiilliittyy 
NNeeww oobbjjeeccttss ttyyppeess ccaann rreessppoonndd ttoo 
eexxiissttiinngg mmeetthhoodd ccaallllss 
–CCaann bbee iinnccoorrppoorraatteedd iinnttoo aa ssyysstteemm wwiitthhoouutt 
mmooddiiffyyiinngg bbaassee ssyysstteemm 
OOnnllyy cclliieenntt ccooddee tthhaatt iinnssttaannttiiaatteess tthhee 
nneeww oobbjjeeccttss mmuusstt bbee mmooddiiffiieedd 
– TToo aaccccoommmmooddaattee nneeww ttyyppeess
AAbbssttrraacctt CCllaasssseess aanndd MMeetthhooddss 
10 
AAbbssttrraacctt ccllaasssseess 
–AArree ssuuppeerrccllaasssseess ((ccaalllleedd aabbssttrraacctt 
ssuuppeerrccllaasssseess)) 
–CCaannnnoott bbee iinnssttaannttiiaatteedd 
– IInnccoommpplleettee 
ssuubbccllaasssseess ffiillll iinn ""mmiissssiinngg ppiieecceess"" 
CCoonnccrreettee ccllaasssseess 
–CCaann bbee iinnssttaannttiiaatteedd 
– IImmpplleemmeenntt eevveerryy mmeetthhoodd tthheeyy ddeeccllaarree 
– PPrroovviiddee ssppeecciiffiiccss
AAbbssttrraacctt CCllaasssseess aanndd MMeetthhooddss 
PPuurrppoossee ooff aann aabbssttrraacctt ccllaassss 
–DDeeccllaarree ccoommmmoonn aattttrriibbuutteess …… 
–DDeeccllaarree ccoommmmoonn bbeehhaavviioorrss ooff ccllaasssseess iinn aa 
ccllaassss hhiieerraarrcchhyy 
CCoonnttaaiinnss oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss 
11 
–SSuubbccllaasssseess mmuusstt oovveerrrriiddee 
IInnssttaannccee vvaarriiaabblleess,, ccoonnccrreettee mmeetthhooddss 
ooff aabbssttrraacctt ccllaassss 
– ssuubbjjeecctt ttoo nnoorrmmaall rruulleess ooff iinnhheerriittaannccee
AAbbssttrraacctt CCllaasssseess 
CCllaasssseess tthhaatt aarree ttoooo ggeenneerraall ttoo 
ccrreeaattee rreeaall oobbjjeeccttss 
UUsseedd oonnllyy aass aabbssttrraacctt ssuuppeerrccllaasssseess 
ffoorr ccoonnccrreettee ssuubbccllaasssseess aanndd ttoo 
ddeeccllaarree rreeffeerreennccee vvaarriiaabblleess 
MMaannyy iinnhheerriittaannccee hhiieerraarrcchhiieess hhaavvee 
aabbssttrraacctt ssuuppeerrccllaasssseess ooccccuuppyyiinngg tthhee 
ttoopp ffeeww lleevveellss 
12
KKeeyywwoorrdd aabbssttrraacctt 
UUssee ttoo ddeeccllaarree aa ccllaassss aabbssttrraacctt 
AAllssoo uussee ttoo ddeeccllaarree aa mmeetthhoodd 
aabbssttrraacctt 
AAbbssttrraacctt ccllaasssseess nnoorrmmaallllyy ccoonnttaaiinn 
oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss 
AAllll ccoonnccrreettee ssuubbccllaasssseess mmuusstt 
oovveerrrriiddee aallll iinnhheerriitteedd aabbssttrraacctt 
mmeetthhooddss 
13
Abstract CCllaasssseess aanndd MMeetthhooddss 
14 
IItteerraattoorr ccllaassss 
– TTrraavveerrsseess aallll tthhee oobbjjeeccttss iinn aa ccoolllleeccttiioonn,, 
ssuucchh aass aann aarrrraayy 
–OOfftteenn uusseedd iinn ppoollyymmoorrpphhiicc 
pprrooggrraammmmiinngg ttoo ttrraavveerrssee aa ccoolllleeccttiioonn 
tthhaatt ccoonnttaaiinnss rreeffeerreenncceess ttoo oobbjjeeccttss 
ffrroomm vvaarriioouuss lleevveellss ooff aa hhiieerraarrcchhyy
AAbbssttrraacctt CCllaasssseess 
DDeeccllaarreess ccoommmmoonn aattttrriibbuutteess aanndd 
bbeehhaavviioorrss ooff tthhee vvaarriioouuss ccllaasssseess iinn aa 
ccllaassss hhiieerraarrcchhyy.. 
TTyyppiiccaallllyy ccoonnttaaiinnss oonnee oorr mmoorree aabbssttrraacctt 
mmeetthhooddss 
–SSuubbccllaasssseess mmuusstt oovveerrrriiddee iiff tthhee ssuubbccllaasssseess 
aarree ttoo bbee ccoonnccrreettee.. 
IInnssttaannccee vvaarriiaabblleess aanndd ccoonnccrreettee 
mmeetthhooddss ooff aann aabbssttrraacctt ccllaassss ssuubbjjeecctt ttoo 
tthhee nnoorrmmaall rruulleess ooff iinnhheerriittaannccee.. 
15
BBeewwaarree!! CCoommppiillee TTiimmee EErrrroorrss 
AAtttteemmppttiinngg ttoo iinnssttaannttiiaattee aann oobbjjeecctt ooff 
aann aabbssttrraacctt ccllaassss 
FFaaiilluurree ttoo iimmpplleemmeenntt aa ssuuppeerrccllaassss’’ss 
aabbssttrraacctt mmeetthhooddss iinn aa ssuubbccllaassss 
– uunnlleessss tthhee ssuubbccllaassss iiss aallssoo ddeeccllaarreedd 
aabbssttrraacctt.. 
16
Creating AAbbssttrraacctt SSuuppeerrccllaassss 
17 
EEmmppllooyyeeee 
aabbssttrraacctt ssuuppeerrccllaassss EEmmppllooyyeeee,, 
FFiigguurree 1100..44 
– eeaarrnniinnggss iiss ddeeccllaarreedd aabbssttrraacctt 
NNoo iimmpplleemmeennttaattiioonn ccaann bbee ggiivveenn ffoorr eeaarrnniinnggss 
iinn tthhee EEmmppllooyyeeee aabbssttrraacctt ccllaassss 
– AAnn aarrrraayy ooff EEmmppllooyyeeee vvaarriiaabblleess wwiillll ssttoorree 
rreeffeerreenncceess ttoo ssuubbccllaassss oobbjjeeccttss 
eeaarrnniinnggss mmeetthhoodd ccaallllss ffrroomm tthheessee vvaarriiaabblleess wwiillll 
ccaallll tthhee aapppprroopprriiaattee vveerrssiioonn ooff tthhee eeaarrnniinnggss 
mmeetthhoodd
EExxaammppllee BBaasseedd oonn EEmmppllooyyeeee 
18 
AAbbssttrraacctt CClalassss 
Concrete 
Classes 
Concrete 
Classes 
CClilcickk oonn CClalasssseess ttoo sseeee ssoouurrccee ccooddee
Polymorphic iinntteerrffaaccee ffoorr tthhee 
EEmmppllooyyeeee hhiieerraarrcchhyy ccllaasssseess.. 
19
NNoottee iinn EExxaammppllee HHiieerraarrcchhyy 
20 
DDyynnaammiicc bbiinnddiinngg 
–AAllssoo kknnoowwnn aass llaattee bbiinnddiinngg 
–CCaallllss ttoo oovveerrrriiddddeenn mmeetthhooddss aarree rreessoollvveedd 
aatt eexxeeccuuttiioonn ttiimmee,, bbaasseedd oonn tthhee ttyyppee ooff 
oobbjjeecctt rreeffeerreenncceedd 
iinnssttaanncceeooff ooppeerraattoorr 
–DDeetteerrmmiinneess wwhheetthheerr aann oobbjjeecctt iiss aann 
iinnssttaannccee ooff aa cceerrttaaiinn ttyyppee
HHooww DDoo TThheeyy DDoo TThhaatt?? 
21 
HHooww ddooeess iitt wwoorrkk?? 
–AAcccceessss aa ddeerriivveedd oobbjjeecctt vviiaa bbaassee ccllaassss 
ppooiinntteerr 
– IInnvvookkee aann aabbssttrraacctt mmeetthhoodd 
–AAtt rruunn ttiimmee tthhee ccoorrrreecctt vveerrssiioonn ooff tthhee 
mmeetthhoodd iiss uusseedd 
DDeessiiggnn ooff tthhee VV--TTaabbllee 
–NNoottee ddeessccrriippttiioonn ffrroomm CC++++
NNoottee iinn EExxaammppllee HHiieerraarrcchhyy 
22 
DDoowwnnccaassttiinngg 
–CCoonnvveerrtt aa rreeffeerreennccee ttoo aa ssuuppeerrccllaassss ttoo aa 
rreeffeerreennccee ttoo aa ssuubbccllaassss 
–AAlllloowweedd oonnllyy iiff tthhee oobbjjeecctt hhaass aann iiss--aa 
rreellaattiioonnsshhiipp wwiitthh tthhee ssuubbccllaassss 
ggeettCCllaassss mmeetthhoodd 
– IInnhheerriitteedd ffrroomm OObbjjeecctt 
–RReettuurrnnss aann oobbjjeecctt ooff ttyyppee CCllaassss 
ggeettNNaammee mmeetthhoodd ooff ccllaassss CCllaassss 
–RReettuurrnnss tthhee ccllaassss’’ss nnaammee
SSuuppeerrccllaassss AAnndd SSuubbccllaassss 
23 
AAssssiiggnnmmeenntt RRuulleess 
 AAssssiiggnniinngg aa ssuuppeerrccllaassss rreeffeerreennccee ttoo 
ssuuppeerrccllaassss vvaarriiaabbllee ssttrraaiigghhttffoorrwwaarrdd 
 SSuubbccllaassss rreeffeerreennccee ttoo ssuubbccllaassss vvaarriiaabbllee 
ssttrraaiigghhttffoorrwwaarrdd 
 SSuubbccllaassss rreeffeerreennccee ttoo ssuuppeerrccllaassss vvaarriiaabbllee 
ssaaffee 
– bbeeccaauussee ooff iiss--aa rreellaattiioonnsshhiipp 
– RReeffeerrrriinngg ttoo ssuubbccllaassss--oonnllyy mmeemmbbeerrss tthhrroouugghh 
ssuuppeerrccllaassss vvaarriiaabblleess aa ccoommppiillaattiioonn eerrrroorr 
 SSuuppeerrccllaassss rreeffeerreennccee ttoo aa ssuubbccllaassss vvaarriiaabbllee aa 
ccoommppiillaattiioonn eerrrroorr 
– DDoowwnnccaassttiinngg ccaann ggeett aarroouunndd tthhiiss eerrrroorr
ffiinnaall MMeetthhooddss aanndd CCllaasssseess 
24 
ffiinnaall mmeetthhooddss 
– CCaannnnoott bbee oovveerrrriiddddeenn iinn aa ssuubbccllaassss 
– pprriivvaattee aanndd ssttaattiicc mmeetthhooddss iimmpplliicciittllyy 
ffiinnaall 
– ffiinnaall mmeetthhooddss aarree rreessoollvveedd aatt ccoommppiillee 
ttiimmee,, tthhiiss iiss kknnoowwnn aass ssttaattiicc bbiinnddiinngg 
CCoommppiilleerrss ccaann ooppttiimmiizzee bbyy iinnlliinniinngg tthhee ccooddee 
ffiinnaall ccllaasssseess 
– CCaannnnoott bbee eexxtteennddeedd bbyy aa ssuubbccllaassss 
– AAllll mmeetthhooddss iinn aa ffiinnaall ccllaassss iimmpplliicciittllyy 
ffiinnaall
WWhhyy UUssee IInntteerrffaacceess 
JJaavvaa hhaass ssiinnggllee iinnhheerriittaannccee,, oonnllyy 
TThhiiss mmeeaannss tthhaatt aa cchhiilldd ccllaassss iinnhheerriittss 
ffrroomm oonnllyy oonnee ppaarreenntt ccllaassss 
SSoommeettiimmeess mmuullttiippllee iinnhheerriittaannccee wwoouulldd 
bbee ccoonnvveenniieenntt 
IInntteerrffaacceess ggiivvee JJaavvaa ssoommee ooff tthhee 
aaddvvaannttaaggeess ooff mmuullttiippllee iinnhheerriittaannccee 
wwiitthhoouutt iinnccuurrrriinngg tthhee ddiissaaddvvaannttaaggeess 
25
WWhhyy UUssee IInntteerrffaacceess 
PPrroovviiddee ccaappaabbiilliittyy ffoorr uunnrreellaatteedd ccllaasssseess 
ttoo iimmpplleemmeenntt aa sseett ooff ccoommmmoonn 
mmeetthhooddss 
DDeeffiinnee aanndd ssttaannddaarrddiizzee wwaayyss ppeeooppllee 
aanndd ssyysstteemmss ccaann iinntteerraacctt 
IInntteerrffaaccee ssppeecciiffiieess wwhhaatt ooppeerraattiioonnss 
mmuusstt bbee ppeerrmmiitttteedd 
DDooeess nnoott ssppeecciiffyy hhooww ppeerrffoorrmmeedd 
26
WWhhaatt iiss aann IInntteerrffaaccee?? 
AAnn iinntteerrffaaccee iiss aa ccoolllleeccttiioonn ooff ccoonnssttaannttss 
aanndd mmeetthhoodd ddeeccllaarraattiioonnss 
AAnn iinntteerrffaaccee ddeessccrriibbeess aa sseett ooff mmeetthhooddss 
tthhaatt ccaann bbee ccaalllleedd oonn aann oobbjjeecctt 
TThhee mmeetthhoodd ddeeccllaarraattiioonnss ddoo nnoott iinncclluuddee 
aann iimmpplleemmeennttaattiioonn 
27 
– tthheerree iiss nnoo mmeetthhoodd bbooddyy
WWhhaatt iiss aann IInntteerrffaaccee?? 
AA cchhiilldd ccllaassss tthhaatt eexxtteennddss aa ppaarreenntt 
ccllaassss ccaann aallssoo iimmpplleemmeenntt aann iinntteerrffaaccee 
ttoo ggaaiinn ssoommee aaddddiittiioonnaall bbeehhaavviioorr 
IImmpplleemmeennttiinngg aann iinntteerrffaaccee iiss aa 
““pprroommiissee”” ttoo iinncclluuddee tthhee ssppeecciiffiieedd 
mmeetthhoodd((ss)) 
AA mmeetthhoodd iinn aann iinntteerrffaaccee ccaannnnoott bbee 
mmaaddee pprriivvaattee 
28
WWhheenn AA CCllaassss DDeeffiinniittiioonn 
IImmpplleemmeennttss AAnn IInntteerrffaaccee:: 
IItt mmuusstt iimmpplleemmeenntt eeaacchh mmeetthhoodd iinn tthhee 
iinntteerrffaaccee 
EEaacchh mmeetthhoodd mmuusstt bbee ppuubblliicc ((eevveenn 
tthhoouugghh tthhee iinntteerrffaaccee mmiigghhtt nnoott ssaayy ssoo)) 
CCoonnssttaannttss ffrroomm tthhee iinntteerrffaaccee ccaann bbee 
uusseedd aass iiff tthheeyy hhaadd bbeeeenn ddeeffiinneedd iinn tthhee 
ccllaassss ((TThheeyy sshhoouulldd nnoott bbee rree--ddeeffiinneedd iinn 
tthhee ccllaassss)) 
29
Declaring CCoonnssttaannttss wwiitthh IInntteerrffaacceess 
IInntteerrffaacceess ccaann bbee uusseedd ttoo ddeeccllaarree 
ccoonnssttaannttss uusseedd iinn mmaannyy ccllaassss 
ddeeccllaarraattiioonnss 
– TThheessee ccoonnssttaannttss aarree iimmpplliicciittllyy ppuubblliicc,, 
ssttaattiicc aanndd ffiinnaall 
–UUssiinngg aa ssttaattiicc iimmppoorrtt ddeeccllaarraattiioonn aalllloowwss 
cclliieennttss ttoo uussee tthheessee ccoonnssttaannttss wwiitthh jjuusstt 
tthheeiirr nnaammeess 
30
Implementation vvss.. IInntteerrffaaccee 
31 
IInnhheerriittaannccee 
IImmpplleemmeennttaattiioonn 
IInnhheerriittaannccee 
 FFuunnccttiioonnaalliittyy hhiigghh iinn tthhee 
hhiieerraarrcchhyy 
 EEaacchh nneeww ssuubbccllaassss 
iinnhheerriittss oonnee oorr mmoorree 
mmeetthhooddss ddeeccllaarreedd iinn 
ssuuppeerrccllaassss 
 SSuubbccllaassss uusseess 
ssuuppeerrccllaassss ddeeccllaarraattiioonnss 
IInntteerrffaaccee IInnhheerriittaannccee 
 FFuunnccttiioonnaalliittyy lloowweerr iinn 
hhiieerraarrcchhyy 
 SSuuppeerrccllaassss ssppeecciiffiieess oonnee 
oorr mmoorree aabbssttrraacctt 
mmeetthhooddss 
 MMuusstt bbee ddeeccllaarreedd ffoorr 
eeaacchh ccllaassss iinn hhiieerraarrcchhyy 
 OOvveerrrriiddddeenn ffoorr 
ssuubbccllaassss--ssppeecciiffiicc 
iimmpplleemmeennttaattiioonnss
CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess 
DDeeccllaarraattiioonn bbeeggiinnss wwiitthh iinntteerrffaaccee 
kkeeyywwoorrdd 
CCllaasssseess iimmpplleemmeenntt aann iinntteerrffaaccee ((aanndd iittss 
mmeetthhooddss)) 
CCoonnttaaiinnss ppuubblliicc aabbssttrraacctt mmeetthhooddss 
–CCllaasssseess ((tthhaatt iimmpplleemmeenntt tthhee iinntteerrffaaccee)) 
mmuusstt iimmpplleemmeenntt tthheessee mmeetthhooddss 
32
CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess 
CCoonnssiiddeerr tthhee ppoossssiibbiilliittyy ooff hhaavviinngg aa 
ccllaassss wwhhiicchh mmaanniippuullaatteess mmaatthheemmaattiiccaall 
ffuunnccttiioonnss 
YYoouu wwaanntt ttoo sseenndd aa ffuunnccttiioonn aass aa 
ppaarraammeetteerr 
–NNoottee tthhaatt CC++++ aalllloowwss tthhiiss ddiirreeccttllyy 
– JJaavvaa ddooeess nnoott 
TThhiiss ttaasskk ccaann bbee aaccccoommpplliisshheedd wwiitthh 
iinntteerrffaacceess 
33
CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess 
DDeeccllaarree iinntteerrffaaccee FFuunnccttiioonn 
DDeeccllaarree ccllaassss MMyyFFuunnccttiioonn wwhhiicchh 
iimmpplleemmeennttss FFuunnccttiioonn 
NNoottee ootthheerr ffuunnccttiioonnss wwhhiicchh aarree ssuubbccllaassss 
oobbjjeeccttss ooff MMyyFFuunnccttiioonn 
VViieeww tteesstt pprrooggrraamm wwhhiicchh ppaasssseess 
FFuunnccttiioonn ssuubbccllaassss oobbjjeeccttss ttoo ffuunnccttiioonn 
mmaanniippuullaattiioonn mmeetthhooddss 
34
CCaassee SSttuuddyy:: AA PPaayyaabbllee HHiieerraarrcchhyy 
35 
PPaayyaabbllee iinntteerrffaaccee 
–CCoonnttaaiinnss mmeetthhoodd ggeettPPaayymmeennttAAmmoouunntt 
– IIss iimmpplleemmeenntteedd bbyy tthhee IInnvvooiiccee aanndd 
EEmmppllooyyeeee ccllaasssseess 
Click to view the 
test program
EEnndd ooff CChhaapptteerr 1100 LLeeccttuurree 
36
Following slides aarree ffrroomm pprreevviioouuss 
eeddiittiioonn.. LLiinnkkss mmaayy nnoott wwoorrkk.. 
37
SSoouurrccee CCooddee ffoorr SShhaappee SSuuppeerrccllaassss 
38 
HHiieerraarrcchhyy 
SShhaappee ssuuppeerrccllaassss,, FFiigguurree 1100..66 
–NNoottee aabbssttrraacctt mmeetthhoodd,, ggeettNNaammee 
PPooiinntt ssuubbccllaassss,, FFiigguurree 1100..77 
–NNoottee,, eexxtteennddss SShhaappee,, oovveerrrriiddee ooff ggeettNNaammee 
CCiirrccllee ssuubbccllaassss,, FFiigguurree 1100..88 
–NNoottee eexxtteennddss PPooiinntt,, oovveerrrriiddee ooff ggeettAArreeaa,, 
ggeettNNaammee,, aanndd ttooSSttrriinngg 
CCyylliinnddeerr ssuubbccllaassss,, FFiigguurree 1100..99 
–NNoottee eexxtteennddss CCiirrccllee,, oovveerrrriiddee ooff ggeettAArreeaa,, 
ggeettNNaammee,, aanndd ttooSSttrriinngg
SSoouurrccee CCooddee ffoorr SShhaappee SSuuppeerrccllaassss 
39 
HHiieerraarrcchhyy 
DDrriivveerr pprrooggrraamm ttoo ddeemmoonnssttrraattee,, 
FFiigguurree 1100..1100 
–NNoottee aarrrraayy ooff ssuuppeerrccllaassss rreeffeerreenncceess 
OOuuttppuutt ooff 
pprrooggrraamm
PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm 
CCllaassss hhiieerraarrcchhyy ffoorr ppoollyymmoorrpphhiicc ppaayyrroollll aapppplliiccaattiioonn 
40 
Employee 
SalariedEmployee CommissionEmployee HourlyEmployee 
BasePlusCommissionEmployee
PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm 
AAbbssttrraacctt ssuuppeerrccllaassss,, EEmmppllooyyeeee,, 
FFiigguurree 1100..1122 
–NNoottee aabbssttrraacctt ccllaassss ssppeecciiffiiccaattiioonn,, aabbssttrraacctt 
eeaarrnniinnggss mmeetthhoodd 
AAbbssttrraacctt ssuubbccllaassss,, SSaallaarriieeddEEmmppllooyyeeee,, 
FFiigguurree 1100..1133 
–NNoottee eexxtteennddss EEmmppllooyyeeee,, oovveerrrriiddee ooff 
eeaarrnniinnggss mmeetthhoodd 
LLooookk aatt ootthheerr ssuubbccllaasssseess iinn tteexxtt,, ppgg 
46611 …… 
–NNoottee hheerree aallssoo tthhee oovveerrrriiddee ooff 41 
eeaarrnniinnggss
PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm 
VViieeww tteesstt pprrooggrraamm,, FFiigguurree 1100..1177 
–NNoottee aarrrraayy ooff ssuuppeerrccllaassss rreeffeerreenncceess wwhhiicchh 
aarree ppooiinntteedd aatt vvaarriioouuss ssuubbccllaassss oobbjjeeccttss 
–NNoottee ggeenneerriicc ccaallllss ooff ttooSSttrriinngg mmeetthhoodd 
–NNoottee uussee ooff iinnssttaannttcceeooff ooppeerraattoorr 
–CCoonnssiiddeerr uussee ooff ddoowwnnccaassttiinngg ((lliinnee 3377)) 
–NNoottee uussee ooff ggeettCCllaassss(())..ggeettNNaammee(()) 
mmeetthhoodd 
GGiivveess aacccceessss ttoo tthhee nnaammee ooff tthhee ccllaassss 
42
PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm 
43 
OOuuttppuutt ooff tthhee 
ppaayyrroollll tteessttiinngg 
pprrooggrraamm 
NNoottee rreessuullttss ooff 
ggeettCCllaassss(())..ggeettNNaammee(()) 
ccaallllss
CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess 
VViieeww iimmpplleemmeennttaattiioonn ooff tthhee iinntteerrffaaccee 
SShhaappee,, FFiigguurree 1100..1199 
NNoottee tthhee ffoolllloowwiinngg:: 
– LLiinnee 4 
ppuubblliicc ccllaassss PPooiinntt eexxtteennddss OObbjjeecctt 
44 
iimmpplleemmeennttss SShhaappee {{ …… 
–DDeeccllaarraattiioonn ooff aaddddiittiioonnaall mmeetthhooddss 
–DDeeccllaarraattiioonn ooff aabbssttrraacctt mmeetthhooddss ggeettAArreeaa,, 
ggeettVVoolluummee,, aanndd ggeettNNaammee
45 
NNeesstteedd CCllaasssseess 
TToopp--lleevveell ccllaasssseess 
–NNoott ddeeccllaarreedd iinnssiiddee aa ccllaassss oorr aa mmeetthhoodd 
NNeesstteedd ccllaasssseess 
–DDeeccllaarreedd iinnssiiddee ootthheerr ccllaasssseess 
– IInnnneerr ccllaasssseess 
NNoonn--ssttaattiicc nneesstteedd ccllaasssseess 
DDeemmoonnssttrraatteedd iinn FFiigguurree 1100..2222 
–RRuunn tthhee pprrooggrraamm 
–AAuuddiioo
MMeennttiioonneedd IInn TThhee AAuuddiioo 
46 
IInnhheerriittaannccee HHiieerraarrcchhyy 
PPaanneess ooff aa JJFFrraammee 
–BBaacckkggrroouunndd 
–CCoonntteenntt 
–GGllaassss 
Object 
Component 
Container 
Window 
Frame 
JFrame
MMeennttiioonneedd IInn TThhee AAuuddiioo 
 TThhrreeee tthhiinnggss rreeqquuiirreedd wwhheenn 
47 
ppeerrffoorrmmiinngg eevveennttss 
11.. IImmpplleemmeenntt tthhee iinntteerrffaaccee 
22.. RReeggiisstteerr tthhee eevveenntt hhaannddlleerrss 
33.. SSppeecciiffiiccaallllyy iimmpplleemmeenntt tthhee 
aaccttiioonnPPeerrffoorrmmeedd mmeetthhooddss
48 
NNeesstteedd CCllaasssseess 
AAnn iinnnneerr ccllaassss iiss aalllloowweedd ttoo ddiirreeccttllyy 
aacccceessss iittss iinnnneerr ccllaassss''ss vvaarriiaabblleess aanndd 
mmeetthhooddss 
WWhheenn tthhiiss uusseedd iinn aann iinnnneerr ccllaassss 
–RReeffeerrss ttoo ccuurrrreenntt iinnnneerr--ccllaassss oobbjjeecctt 
TToo aacccceessss oouutteerr--ccllaassss uussiinngg tthhiiss 
– PPrreecceeddee tthhiiss wwiitthh oouutteerr--ccllaassss nnaammee
49 
NNeesstteedd CCllaasssseess 
AAnnoonnyymmoouuss iinnnneerr ccllaassss 
–DDeeccllaarreedd iinnssiiddee aa mmeetthhoodd ooff aa ccllaassss 
–HHaass nnoo nnaammee 
IInnnneerr ccllaassss ddeeccllaarreedd iinnssiiddee aa mmeetthhoodd 
–CCaann aacccceessss oouutteerr ccllaassss''ss mmeemmbbeerrss 
– LLiimmiitteedd ttoo llooccaall vvaarriiaabblleess ooff mmeetthhoodd iinn 
wwhhiicchh ddeeccllaarreedd 
NNoottee uussee ooff aannoonnyymmoouuss iinnnneerr ccllaassss,, 
FFiigguurree 1100..2233
NNootteess oonn NNeesstteedd CCllaasssseess 
 CCoommppiilliinngg ccllaassss tthhaatt ccoonnttaaiinnss nneesstteedd ccllaassss 
– RReessuullttss iinn sseeppaarraattee ..ccllaassss ffiillee 
– OOuutteerrCCllaassssNNaammee$$IInnnneerrCCllaassssNNaammee..ccllaassss 
 IInnnneerr ccllaasssseess wwiitthh nnaammeess ccaann bbee ddeeccllaarreedd aass 
– ppuubblliicc,, pprrootteecctteedd,, pprriivvaattee oorr ppaacckkaaggee aacccceessss 
50
NNootteess oonn NNeesstteedd CCllaasssseess 
AAcccceessss oouutteerr ccllaassss’’ss tthhiiss rreeffeerreennccee 
OOuutteerrCCllaassssNNaammee..tthhiiss 
OOuutteerr ccllaassss iiss rreessppoonnssiibbllee ffoorr ccrreeaattiinngg 
iinnnneerr ccllaassss oobbjjeeccttss 
OOuutteerrCCllaassssNNaammee..IInnnneerrCCllaassssNNaammee iinnnneerrRReeff == 
51 
rreeff..nneeww IInnnneerrCCllaassssNNaammee(());; 
NNeesstteedd ccllaasssseess ccaann bbee ddeeccllaarreedd ssttaattiicc 
– OObbjjeecctt ooff oouutteerr ccllaassss nneeeedd nnoott bbee ccrreeaatteedd 
– SSttaattiicc nneesstteedd ccllaassss ddooeess nnoott hhaavvee aacccceessss 
ttoo oouutteerr ccllaassss''ss nnoonn--ssttaattiicc mmeemmbbeerrss
Type-Wrapper CCllaasssseess ffoorr PPrriimmiittiivvee 
52 
TTyyppeess 
EEaacchh pprriimmiittiivvee ttyyppee hhaass oonnee 
–CChhaarraacctteerr,, BByyttee,, IInntteeggeerr,, 
BBoooolleeaann,, eettcc.. 
EEnnaabbllee ttoo rreepprreesseenntt pprriimmiittiivvee aass OObbjjeecctt 
– PPrriimmiittiivvee vvaalluueess ccaann bbee pprroocceesssseedd 
ppoollyymmoorrpphhiiccaallllyy uussiinngg wwrraappppeerr ccllaasssseess 
DDeeccllaarreedd aass ffiinnaall 
MMaannyy mmeetthhooddss aarree ddeeccllaarreedd ssttaattiicc
Invoking SSuuppeerrccllaassss MMeetthhooddss ffrroomm 
53 
SSuubbccllaassss OObbjjeeccttss 
RReeccaallll tthhee ppooiinntt aanndd cciirrccllee hhiieerraarrcchhyy 
–NNoottee :: 
AAssssiiggnnmmeenntt ooff ssuuppeerrccllaassss rreeffeerreennccee ttoo 
ssuuppeerrccllaassss vvaarriiaabbllee 
–AAssssiiggnnmmeenntt ooff ssuubbccllaassss rreeffeerreennccee ttoo 
ssuubbccllaassss vvaarriiaabbllee 
NNoo ssuurrpprriisseess …… bbuutt tthhee ""iiss--aa"" 
rreellaattiioonnsshhiipp mmaakkeess ppoossssiibbllee 
–AAssssiiggnnmmeenntt ooff ssuubbccllaassss rreeffeerreennccee ttoo 
ssuuppeerrccllaassss vvaarriiaabbllee 
SSeeee FFiigguurree 1100..11
Using SSuuppeerrccllaassss RReeffeerreenncceess wwiitthh 
SSuubbccllaassss--TTyyppee VVaarriiaabblleess 
SSuuppppoossee wwee hhaavvee aa ssuuppeerrccllaassss oobbjjeecctt 
PPooiinntt33 ppooiinntt == nneeww PPooiinntt33 ((3300,, 4400));; 
54 
TThheenn aa ssuubbccllaassss rreeffeerreennccee 
CCiirrccllee44 cciirrccllee;; 
IItt wwoouulldd bbee iilllleeggaall ttoo hhaavvee tthhee ssuubbccllaassss 
rreeffeerreennccee aaiimmeedd aatt tthhee ssuuppeerrccllaassss 
oobbjjeecctt 
cciirrccllee == ppooiinntt;;
SSuubbccllaassss MMeetthhoodd CCaallllss vviiaa 
SSuuppeerrccllaassss--TTyyppee VVaarriiaabblleess 
CCoonnssiiddeerr aaiimmiinngg aa ssuubbccllaassss 
rreeffeerreennccee aatt aa ssuuppeerrccllaassss oobbjjeecctt 
– IIff yyoouu uussee tthhiiss ttoo aacccceessss aa ssuubbccllaassss-- 
oonnllyy mmeetthhoodd iitt iiss iilllleeggaall 
55 
NNoottee FFiigguurree 1100..33 
– LLiinneess 2222 -- 2233
Summary ooff LLeeggaall AAssssiiggnnmmeennttss bbeettwweeeenn 
SSuuppeerr-- aanndd SSuubbccllaassss VVaarriiaabblleess 
 AAssssiiggnniinngg ssuuppeerrccllaassss rreeffeerreennccee ttoo ssuuppeerrccllaassss-- 
ttyyppee vvaarriiaabbllee OOKK 
 AAssssiiggnniinngg ssuubbccllaassss rreeffeerreennccee ttoo ssuubbccllaassss--ttyyppee 
vvaarriiaabbllee OOKK 
 AAssssiiggnniinngg ssuubbccllaassss oobbjjeecctt''ss rreeffeerreennccee ttoo 
ssuuppeerrccllaassss ttyyppee--vvaarriiaabbllee,, ssaaffee 
– AA cciirrccllee ""iiss aa"" ppooiinntt 
– OOnnllyy ppoossssiibbllee ttoo iinnvvookkee ssuuppeerrccllaassss mmeetthhooddss 
 DDoo NNOOTT aassssiiggnn ssuuppeerrccllaassss rreeffeerreennccee ttoo 
ssuubbccllaassss--ttyyppee vvaarriiaabbllee 
– YYoouu ccaann ccaasstt tthhee ssuuppeerrccllaassss rreeffeerreennccee ttoo aa 
ssuubbccllaassss ttyyppee ((eexxpplliicciittllyy)) 
56
PPoollyymmoorrpphhiissmm EExxaammpplleess 
57 
SSuuppppoossee ddeessiiggnniinngg vviiddeeoo ggaammee 
 SSuuppeerrccllaassss SSppaacceeOObbjjeecctt 
– SSuubbccllaasssseess MMaarrttiiaann,, SSppaacceeSShhiipp,, LLaasseerrBBeeaamm 
– CCoonnttaaiinnss mmeetthhoodd ddrraaww 
 TToo rreeffrreesshh ssccrreeeenn 
– SSeenndd ddrraaww mmeessssaaggee ttoo eeaacchh oobbjjeecctt 
– SSaammee mmeessssaaggee hhaass ““mmaannyy ffoorrmmss”” ooff rreessuullttss 
 EEaassyy ttoo aadddd ccllaassss MMeerrccuurriiaann 
– EExxtteennddss SSppaacceeOObbjjeecctt 
– PPrroovviiddeess iittss oowwnn iimmpplleemmeennttaattiioonn ooff ddrraaww 
 PPrrooggrraammmmeerr ddooeess nnoott nneeeedd ttoo cchhaannggee ccooddee 
– CCaallllss ddrraaww rreeggaarrddlleessss ooff oobbjjeecctt’’ss ttyyppee 
– MMeerrccuurriiaann oobbjjeeccttss ““pplluugg rriigghhtt iinn””
58 
PPoollyymmoorrpphhiissmm 
EEnnaabblleess pprrooggrraammmmeerrss ttoo ddeeaall iinn 
ggeenneerraalliittiieess 
– LLeett eexxeeccuuttiioonn--ttiimmee eennvviirroonnmmeenntt hhaannddllee 
ssppeecciiffiiccss 
AAbbllee ttoo ccoommmmaanndd oobbjjeeccttss ttoo bbeehhaavvee iinn 
mmaannnneerrss aapppprroopprriiaattee ttoo tthhoossee oobbjjeeccttss 
–DDoonn''tt nneeeedd ttoo kknnooww ttyyppee ooff tthhee oobbjjeecctt 
–OObbjjeeccttss nneeeedd oonnllyy ttoo bbeelloonngg ttoo ssaammee 
iinnhheerriittaannccee hhiieerraarrcchhyy
AAbbssttrraacctt CCllaasssseess aanndd MMeetthhooddss 
AAbbssttrraacctt ccllaasssseess nnoott rreeqquuiirreedd,, bbuutt 
rreedduuccee cclliieenntt ccooddee ddeeppeennddeenncciieess 
TToo mmaakkee aa ccllaassss aabbssttrraacctt 
–DDeeccllaarree wwiitthh kkeeyywwoorrdd aabbssttrraacctt 
–CCoonnttaaiinn oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss 
59 
ppuubblliicc aabbssttrraacctt vvooiidd ddrraaww(());; 
–AAbbssttrraacctt mmeetthhooddss 
NNoo iimmpplleemmeennttaattiioonn,, mmuusstt bbee oovveerrrriiddddeenn
IInnhheerriittiinngg IInntteerrffaaccee aanndd 
60 
IImmpplleemmeennttaattiioonn 
MMaakkee aabbssttrraacctt ssuuppeerrccllaassss SShhaappee 
 AAbbssttrraacctt mmeetthhoodd ((mmuusstt bbee iimmpplleemmeenntteedd)) 
– ggeettNNaammee,, pprriinntt 
– DDeeffaauulltt iimmpplleemmeennttaattiioonn ddooeess nnoott mmaakkee sseennssee 
 MMeetthhooddss mmaayy bbee oovveerrrriiddddeenn 
– ggeettAArreeaa,, ggeettVVoolluummee 
 DDeeffaauulltt iimmpplleemmeennttaattiioonnss rreettuurrnn 00..00 
– IIff nnoott oovveerrrriiddddeenn,, uusseess ssuuppeerrccllaassss ddeeffaauulltt 
iimmpplleemmeennttaattiioonn 
 SSuubbccllaasssseess PPooiinntt,, CCiirrccllee,, CCyylliinnddeerr
Polymorphic Interface For The 
getArea getVolume getName toString 
61 
Shape 
Point 
Circle 
Cylinder 
Shape Hierarchy Class 
0.0 0.0 abstract default 
Object 
implement 
0.0 0.0 "Point" [x,y] 
πr2 0.0 "Circle" center=[x,y]; 
radius=r 
2πr2 +2πrh πr2h "Cylinder" 
center=[x,y]; 
radius=r; 
height=h 
Shape 
Point 
Circle 
Cylinder
CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess 
AAllll tthhee ssaammee ""iiss--aa"" rreellaattiioonnsshhiippss aappppllyy 
wwhheenn aann iinntteerrffaaccee iinnhheerriittaannccee iiss uusseedd 
OObbjjeeccttss ooff aannyy ccllaassss tthhaatt eexxtteenndd tthhee 
iinntteerrffaaccee aarree aallssoo oobbjjeeccttss ooff tthhee 
iinntteerrffaaccee ttyyppee 
– CCiirrccllee eexxtteennddss PPooiinntt,, tthhuuss iitt iiss--aa SShhaappee 
MMuullttiippllee iinntteerrffaacceess aarree ppoossssiibbllee 
–CCoommmmaa--sseeppaarraatteedd lliisstt uusseedd iinn ddeeccllaarraattiioonn 
62

More Related Content

What's hot

Petroleum adulteration and law
Petroleum adulteration and lawPetroleum adulteration and law
Petroleum adulteration and lawmahesh lone
 
Danube Regional Project presentation
Danube Regional Project presentationDanube Regional Project presentation
Danube Regional Project presentationIwl Pcu
 
Aprendizaje y calidad educativa exp. alan alvarez flores
Aprendizaje y calidad educativa  exp. alan alvarez floresAprendizaje y calidad educativa  exp. alan alvarez flores
Aprendizaje y calidad educativa exp. alan alvarez floresAlan Alvarez Flores
 
Persentase sistem-reproduksi-pada-wanita2
Persentase sistem-reproduksi-pada-wanita2Persentase sistem-reproduksi-pada-wanita2
Persentase sistem-reproduksi-pada-wanita2ayikputri1
 
4th grade, lesson plan
4th grade, lesson plan4th grade, lesson plan
4th grade, lesson plancpapadak
 
Anatomiadelaparatoreproductorfemenino
Anatomiadelaparatoreproductorfemenino Anatomiadelaparatoreproductorfemenino
Anatomiadelaparatoreproductorfemenino Karen Toledo
 
5 regiond virtual tour 4 regionsvft
5 regiond virtual tour 4 regionsvft5 regiond virtual tour 4 regionsvft
5 regiond virtual tour 4 regionsvftpr6543
 
Action Research
Action ResearchAction Research
Action ResearchGlory
 
Bastionado de servidores
Bastionado de servidoresBastionado de servidores
Bastionado de servidoresjose perez
 
50 coaching slides2
50 coaching slides250 coaching slides2
50 coaching slides2Paul Robere
 
3. musculos cabeza
3. musculos cabeza3. musculos cabeza
3. musculos cabezaanatogral
 
Span 4573 la semántica 20 de octubre
Span 4573 la semántica 20 de octubreSpan 4573 la semántica 20 de octubre
Span 4573 la semántica 20 de octubreDonna Shelton
 
A Brief Introduction to Object-Orientation (The Light Version)
A Brief Introduction to Object-Orientation (The Light Version)A Brief Introduction to Object-Orientation (The Light Version)
A Brief Introduction to Object-Orientation (The Light Version)Michael Henson
 

What's hot (20)

Spinal injuries
Spinal injuriesSpinal injuries
Spinal injuries
 
Aula 1 (2)
Aula 1 (2)Aula 1 (2)
Aula 1 (2)
 
Petroleum adulteration and law
Petroleum adulteration and lawPetroleum adulteration and law
Petroleum adulteration and law
 
Danube Regional Project presentation
Danube Regional Project presentationDanube Regional Project presentation
Danube Regional Project presentation
 
Aprendizaje y calidad educativa exp. alan alvarez flores
Aprendizaje y calidad educativa  exp. alan alvarez floresAprendizaje y calidad educativa  exp. alan alvarez flores
Aprendizaje y calidad educativa exp. alan alvarez flores
 
Leukoplakia
LeukoplakiaLeukoplakia
Leukoplakia
 
Persentase sistem-reproduksi-pada-wanita2
Persentase sistem-reproduksi-pada-wanita2Persentase sistem-reproduksi-pada-wanita2
Persentase sistem-reproduksi-pada-wanita2
 
darcys law
darcys lawdarcys law
darcys law
 
Plan dyd wych_2014-2015
Plan dyd wych_2014-2015Plan dyd wych_2014-2015
Plan dyd wych_2014-2015
 
4th grade, lesson plan
4th grade, lesson plan4th grade, lesson plan
4th grade, lesson plan
 
Anatomiadelaparatoreproductorfemenino
Anatomiadelaparatoreproductorfemenino Anatomiadelaparatoreproductorfemenino
Anatomiadelaparatoreproductorfemenino
 
5 regiond virtual tour 4 regionsvft
5 regiond virtual tour 4 regionsvft5 regiond virtual tour 4 regionsvft
5 regiond virtual tour 4 regionsvft
 
Action Research
Action ResearchAction Research
Action Research
 
Bastionado de servidores
Bastionado de servidoresBastionado de servidores
Bastionado de servidores
 
50 coaching slides2
50 coaching slides250 coaching slides2
50 coaching slides2
 
3. musculos cabeza
3. musculos cabeza3. musculos cabeza
3. musculos cabeza
 
Span 4573 la semántica 20 de octubre
Span 4573 la semántica 20 de octubreSpan 4573 la semántica 20 de octubre
Span 4573 la semántica 20 de octubre
 
Pengujian hipotesis
Pengujian hipotesisPengujian hipotesis
Pengujian hipotesis
 
Estado de Salud
Estado de SaludEstado de Salud
Estado de Salud
 
A Brief Introduction to Object-Orientation (The Light Version)
A Brief Introduction to Object-Orientation (The Light Version)A Brief Introduction to Object-Orientation (The Light Version)
A Brief Introduction to Object-Orientation (The Light Version)
 

Viewers also liked

Watervallen
WatervallenWatervallen
WatervallenMaWitch
 
Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...
Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...
Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...madlovescience
 
10 Reasons to Attend #ACI14
10 Reasons to Attend #ACI1410 Reasons to Attend #ACI14
10 Reasons to Attend #ACI14Mike Rogers
 
Ann Arbor Michigan's Innovation Economy
Ann Arbor Michigan's Innovation EconomyAnn Arbor Michigan's Innovation Economy
Ann Arbor Michigan's Innovation EconomyMichael Cole
 
Bridgepoint Midwest M&A Quarterly Update Q1-12
Bridgepoint Midwest M&A Quarterly Update Q1-12Bridgepoint Midwest M&A Quarterly Update Q1-12
Bridgepoint Midwest M&A Quarterly Update Q1-12Adam Claypool
 
BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...
BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...
BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...Naina Rathore
 
Willem van Valkenburg - project presentation for OCWC Board
Willem van Valkenburg - project presentation for OCWC BoardWillem van Valkenburg - project presentation for OCWC Board
Willem van Valkenburg - project presentation for OCWC BoardOpenCourseWare Europe
 
Social IT: reach IT buyers with vertical networks 16.04.13
Social IT: reach IT buyers with vertical networks 16.04.13Social IT: reach IT buyers with vertical networks 16.04.13
Social IT: reach IT buyers with vertical networks 16.04.13Spiceworks Ziff Davis
 
Hearst at DIS: Rethinking Entrepreneurship
Hearst at DIS: Rethinking EntrepreneurshipHearst at DIS: Rethinking Entrepreneurship
Hearst at DIS: Rethinking EntrepreneurshipDigiday
 
Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...
Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...
Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...Startup Product Academy, LLC
 

Viewers also liked (20)

Watervallen
WatervallenWatervallen
Watervallen
 
Kuroshitsuji
KuroshitsujiKuroshitsuji
Kuroshitsuji
 
20110329 工科系簡介
20110329 工科系簡介20110329 工科系簡介
20110329 工科系簡介
 
Japanese Art
Japanese ArtJapanese Art
Japanese Art
 
S026201150120
S026201150120S026201150120
S026201150120
 
Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...
Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...
Film pore diffusion modeling for sorption of azo dye on to exfoliated graphit...
 
10 Reasons to Attend #ACI14
10 Reasons to Attend #ACI1410 Reasons to Attend #ACI14
10 Reasons to Attend #ACI14
 
Ann Arbor Michigan's Innovation Economy
Ann Arbor Michigan's Innovation EconomyAnn Arbor Michigan's Innovation Economy
Ann Arbor Michigan's Innovation Economy
 
EQ2
EQ2EQ2
EQ2
 
Tgggggggggg
TggggggggggTgggggggggg
Tgggggggggg
 
Bridgepoint Midwest M&A Quarterly Update Q1-12
Bridgepoint Midwest M&A Quarterly Update Q1-12Bridgepoint Midwest M&A Quarterly Update Q1-12
Bridgepoint Midwest M&A Quarterly Update Q1-12
 
BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...
BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...
BEST-OPTION-NEWS-BY-THEEQUICOM-FINANCIAL-RESEARCH-PVT.-LTD.-FOR-TODAY-24-DEC-...
 
Willem van Valkenburg - project presentation for OCWC Board
Willem van Valkenburg - project presentation for OCWC BoardWillem van Valkenburg - project presentation for OCWC Board
Willem van Valkenburg - project presentation for OCWC Board
 
Social IT: reach IT buyers with vertical networks 16.04.13
Social IT: reach IT buyers with vertical networks 16.04.13Social IT: reach IT buyers with vertical networks 16.04.13
Social IT: reach IT buyers with vertical networks 16.04.13
 
Banking operations
Banking operationsBanking operations
Banking operations
 
Tambawala lm 2013
Tambawala lm 2013Tambawala lm 2013
Tambawala lm 2013
 
Details
DetailsDetails
Details
 
Hearst at DIS: Rethinking Entrepreneurship
Hearst at DIS: Rethinking EntrepreneurshipHearst at DIS: Rethinking Entrepreneurship
Hearst at DIS: Rethinking Entrepreneurship
 
09J1_ACG_Prospect
09J1_ACG_Prospect09J1_ACG_Prospect
09J1_ACG_Prospect
 
Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...
Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...
Global Product Management Talk With Anca Mosoiu, Founder of Tech Liminal, On ...
 

Similar to Chapter10 polymorphism

1 pigmentation
1 pigmentation1 pigmentation
1 pigmentationAhmed Amer
 
Anatomia y fisio del snc
Anatomia y fisio del sncAnatomia y fisio del snc
Anatomia y fisio del sncMiri12Rom
 
business plan presentation
business plan presentationbusiness plan presentation
business plan presentationHotRat
 
Www.cpafap.embrapa.br aquicultura download_tanques_danielmontagner
Www.cpafap.embrapa.br aquicultura download_tanques_danielmontagnerWww.cpafap.embrapa.br aquicultura download_tanques_danielmontagner
Www.cpafap.embrapa.br aquicultura download_tanques_danielmontagnerChristiano Leal Portes
 
Introduction to chemistry
Introduction to chemistryIntroduction to chemistry
Introduction to chemistryDocumentStory
 
Financial Accounting 1
Financial Accounting 1Financial Accounting 1
Financial Accounting 1oonyu
 
Laporan laba rugi& related information
Laporan laba rugi& related informationLaporan laba rugi& related information
Laporan laba rugi& related informationIndra Yu
 
Reunió pares principi de curs 1r
Reunió pares principi de curs 1rReunió pares principi de curs 1r
Reunió pares principi de curs 1rAina8
 
Biomech of cerv disk medium
Biomech of cerv disk mediumBiomech of cerv disk medium
Biomech of cerv disk mediumAlexander Bardis
 
Nervous system
Nervous systemNervous system
Nervous systemjmorgan80
 
Conf en1 artes electroniques
Conf  en1    artes electroniquesConf  en1    artes electroniques
Conf en1 artes electroniquesRabah HELAL
 
Marshall mix design method
Marshall mix design methodMarshall mix design method
Marshall mix design methodGourav Mewara
 
7.neoplasm
7.neoplasm7.neoplasm
7.neoplasmReach Na
 

Similar to Chapter10 polymorphism (20)

Equp vali autoclave
Equp vali autoclaveEqup vali autoclave
Equp vali autoclave
 
1 pigmentation
1 pigmentation1 pigmentation
1 pigmentation
 
Anatomia y fisio del snc
Anatomia y fisio del sncAnatomia y fisio del snc
Anatomia y fisio del snc
 
Training methods
Training methodsTraining methods
Training methods
 
business plan presentation
business plan presentationbusiness plan presentation
business plan presentation
 
Www.cpafap.embrapa.br aquicultura download_tanques_danielmontagner
Www.cpafap.embrapa.br aquicultura download_tanques_danielmontagnerWww.cpafap.embrapa.br aquicultura download_tanques_danielmontagner
Www.cpafap.embrapa.br aquicultura download_tanques_danielmontagner
 
Introduction to chemistry
Introduction to chemistryIntroduction to chemistry
Introduction to chemistry
 
Financial Accounting 1
Financial Accounting 1Financial Accounting 1
Financial Accounting 1
 
Laporan laba rugi& related information
Laporan laba rugi& related informationLaporan laba rugi& related information
Laporan laba rugi& related information
 
Physical fitness dr gad
Physical fitness   dr gadPhysical fitness   dr gad
Physical fitness dr gad
 
Le lexíque et son apprentissage
Le lexíque et son apprentissageLe lexíque et son apprentissage
Le lexíque et son apprentissage
 
Reunió pares principi de curs 1r
Reunió pares principi de curs 1rReunió pares principi de curs 1r
Reunió pares principi de curs 1r
 
Ch. 1 history
Ch. 1 historyCh. 1 history
Ch. 1 history
 
Biomech of cerv disk medium
Biomech of cerv disk mediumBiomech of cerv disk medium
Biomech of cerv disk medium
 
Nervous system
Nervous systemNervous system
Nervous system
 
Sforaitul
SforaitulSforaitul
Sforaitul
 
Conf en1 artes electroniques
Conf  en1    artes electroniquesConf  en1    artes electroniques
Conf en1 artes electroniques
 
Marshall mix design method
Marshall mix design methodMarshall mix design method
Marshall mix design method
 
7.neoplasm
7.neoplasm7.neoplasm
7.neoplasm
 
Menopause
MenopauseMenopause
Menopause
 

Chapter10 polymorphism

  • 2. WWhhaatt YYoouu WWiillll LLeeaarrnn 2 WWhhaatt iiss ppoollyymmoorrpphhiissmm?? HHooww ttoo ddeeccllaarree aanndd uussee vviirrttuuaall ffuunnccttiioonnss ffoorr aabbssttrraacctt ccllaasssseess
  • 3. PPrroobblleemm wwiitthh SSuubbccllaasssseess  Given the class hierarchy below  Consider the existence of a draw function for each subclass  Consider also an array of references to the superclass (which can also point to various objects of the subclasses)  How do you specify which draw statement to be called when using the references Rectangle 3 Shape class hierarchy Circle Triangle Right Triangle Isosceles Triangle Square Shape
  • 4. 4 IInnttrroodduuccttiioonn PPoollyymmoorrpphhiissmm – EEnnaabblleess ““pprrooggrraammmmiinngg iinn tthhee ggeenneerraall”” – TThhee ssaammee iinnvvooccaattiioonn ccaann pprroodduuccee ““mmaannyy ffoorrmmss”” ooff rreessuullttss IInntteerrffaacceess – IImmpplleemmeenntteedd bbyy ccllaasssseess ttoo aassssiiggnn ccoommmmoonn ffuunnccttiioonnaalliittyy ttoo ppoossssiibbllyy uunnrreellaatteedd ccllaasssseess
  • 5. 5 PPoollyymmoorrpphhiissmm WWhheenn aa pprrooggrraamm iinnvvookkeess aa mmeetthhoodd tthhrroouugghh aa ssuuppeerrccllaassss vvaarriiaabbllee,, – tthhee ccoorrrreecctt ssuubbccllaassss vveerrssiioonn ooff tthhee mmeetthhoodd iiss ccaalllleedd,, – bbaasseedd oonn tthhee ttyyppee ooff tthhee rreeffeerreennccee ssttoorreedd iinn tthhee ssuuppeerrccllaassss vvaarriiaabbllee TThhee ssaammee mmeetthhoodd nnaammee aanndd ssiiggnnaattuurree ccaann ccaauussee ddiiffffeerreenntt aaccttiioonnss ttoo ooccccuurr,, – ddeeppeennddiinngg oonn tthhee ttyyppee ooff oobbjjeecctt oonn wwhhiicchh tthhee mmeetthhoodd iiss iinnvvookkeedd
  • 6. 6 PPoollyymmoorrpphhiissmm PPoollyymmoorrpphhiissmm eennaabblleess pprrooggrraammmmeerrss ttoo ddeeaall iinn ggeenneerraalliittiieess aanndd – lleett tthhee eexxeeccuuttiioonn--ttiimmee eennvviirroonnmmeenntt hhaannddllee tthhee ssppeecciiffiiccss.. PPrrooggrraammmmeerrss ccaann ccoommmmaanndd oobbjjeeccttss ttoo bbeehhaavvee iinn mmaannnneerrss aapppprroopprriiaattee ttoo tthhoossee oobbjjeeccttss,, –wwiitthhoouutt kknnoowwiinngg tthhee ttyyppeess ooff tthhee oobbjjeeccttss – ((aass lloonngg aass tthhee oobbjjeeccttss bbeelloonngg ttoo tthhee ssaammee iinnhheerriittaannccee hhiieerraarrcchhyy))..
  • 7. PPoollyymmoorrpphhiissmm PPrroommootteess 7 EExxtteennssiibbiilliittyy SSooffttwwaarree tthhaatt iinnvvookkeess ppoollyymmoorrpphhiicc bbeehhaavviioorr – iinnddeeppeennddeenntt ooff tthhee oobbjjeecctt ttyyppeess ttoo wwhhiicchh mmeessssaaggeess aarree sseenntt.. NNeeww oobbjjeecctt ttyyppeess tthhaatt ccaann rreessppoonndd ttoo eexxiissttiinngg mmeetthhoodd ccaallllss ccaann bbee – iinnccoorrppoorraatteedd iinnttoo aa ssyysstteemm wwiitthhoouutt rreeqquuiirriinngg mmooddiiffiiccaattiioonn ooff tthhee bbaassee ssyysstteemm.. –OOnnllyy cclliieenntt ccooddee tthhaatt iinnssttaannttiiaatteess nneeww oobbjjeeccttss mmuusstt bbee mmooddiiffiieedd ttoo aaccccoommmmooddaattee nneeww ttyyppeess..
  • 8. Demonstrating PPoollyymmoorrpphhiicc 8 BBeehhaavviioorr AA ssuuppeerrccllaassss rreeffeerreennccee ccaann bbee aaiimmeedd aatt aa ssuubbccllaassss oobbjjeecctt – aa ssuubbccllaassss oobbjjeecctt ““iiss--aa”” ssuuppeerrccllaassss oobbjjeecctt – tthhee ttyyppee ooff tthhee aaccttuuaall rreeffeerreenncceedd oobbjjeecctt,, nnoott tthhee ttyyppee ooff tthhee rreeffeerreennccee,, ddeetteerrmmiinneess wwhhiicchh mmeetthhoodd iiss ccaalllleedd AA ssuubbccllaassss rreeffeerreennccee ccaann bbee aaiimmeedd aatt aa ssuuppeerrccllaassss oobbjjeecctt oonnllyy iiff tthhee oobbjjeecctt iiss ddoowwnnccaasstteedd VViieeww eexxaammppllee,, FFiigguurree 1100..11
  • 9. 9 PPoollyymmoorrpphhiissmm PPrroommootteess eexxtteennssiibbiilliittyy NNeeww oobbjjeeccttss ttyyppeess ccaann rreessppoonndd ttoo eexxiissttiinngg mmeetthhoodd ccaallllss –CCaann bbee iinnccoorrppoorraatteedd iinnttoo aa ssyysstteemm wwiitthhoouutt mmooddiiffyyiinngg bbaassee ssyysstteemm OOnnllyy cclliieenntt ccooddee tthhaatt iinnssttaannttiiaatteess tthhee nneeww oobbjjeeccttss mmuusstt bbee mmooddiiffiieedd – TToo aaccccoommmmooddaattee nneeww ttyyppeess
  • 10. AAbbssttrraacctt CCllaasssseess aanndd MMeetthhooddss 10 AAbbssttrraacctt ccllaasssseess –AArree ssuuppeerrccllaasssseess ((ccaalllleedd aabbssttrraacctt ssuuppeerrccllaasssseess)) –CCaannnnoott bbee iinnssttaannttiiaatteedd – IInnccoommpplleettee ssuubbccllaasssseess ffiillll iinn ""mmiissssiinngg ppiieecceess"" CCoonnccrreettee ccllaasssseess –CCaann bbee iinnssttaannttiiaatteedd – IImmpplleemmeenntt eevveerryy mmeetthhoodd tthheeyy ddeeccllaarree – PPrroovviiddee ssppeecciiffiiccss
  • 11. AAbbssttrraacctt CCllaasssseess aanndd MMeetthhooddss PPuurrppoossee ooff aann aabbssttrraacctt ccllaassss –DDeeccllaarree ccoommmmoonn aattttrriibbuutteess …… –DDeeccllaarree ccoommmmoonn bbeehhaavviioorrss ooff ccllaasssseess iinn aa ccllaassss hhiieerraarrcchhyy CCoonnttaaiinnss oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss 11 –SSuubbccllaasssseess mmuusstt oovveerrrriiddee IInnssttaannccee vvaarriiaabblleess,, ccoonnccrreettee mmeetthhooddss ooff aabbssttrraacctt ccllaassss – ssuubbjjeecctt ttoo nnoorrmmaall rruulleess ooff iinnhheerriittaannccee
  • 12. AAbbssttrraacctt CCllaasssseess CCllaasssseess tthhaatt aarree ttoooo ggeenneerraall ttoo ccrreeaattee rreeaall oobbjjeeccttss UUsseedd oonnllyy aass aabbssttrraacctt ssuuppeerrccllaasssseess ffoorr ccoonnccrreettee ssuubbccllaasssseess aanndd ttoo ddeeccllaarree rreeffeerreennccee vvaarriiaabblleess MMaannyy iinnhheerriittaannccee hhiieerraarrcchhiieess hhaavvee aabbssttrraacctt ssuuppeerrccllaasssseess ooccccuuppyyiinngg tthhee ttoopp ffeeww lleevveellss 12
  • 13. KKeeyywwoorrdd aabbssttrraacctt UUssee ttoo ddeeccllaarree aa ccllaassss aabbssttrraacctt AAllssoo uussee ttoo ddeeccllaarree aa mmeetthhoodd aabbssttrraacctt AAbbssttrraacctt ccllaasssseess nnoorrmmaallllyy ccoonnttaaiinn oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss AAllll ccoonnccrreettee ssuubbccllaasssseess mmuusstt oovveerrrriiddee aallll iinnhheerriitteedd aabbssttrraacctt mmeetthhooddss 13
  • 14. Abstract CCllaasssseess aanndd MMeetthhooddss 14 IItteerraattoorr ccllaassss – TTrraavveerrsseess aallll tthhee oobbjjeeccttss iinn aa ccoolllleeccttiioonn,, ssuucchh aass aann aarrrraayy –OOfftteenn uusseedd iinn ppoollyymmoorrpphhiicc pprrooggrraammmmiinngg ttoo ttrraavveerrssee aa ccoolllleeccttiioonn tthhaatt ccoonnttaaiinnss rreeffeerreenncceess ttoo oobbjjeeccttss ffrroomm vvaarriioouuss lleevveellss ooff aa hhiieerraarrcchhyy
  • 15. AAbbssttrraacctt CCllaasssseess DDeeccllaarreess ccoommmmoonn aattttrriibbuutteess aanndd bbeehhaavviioorrss ooff tthhee vvaarriioouuss ccllaasssseess iinn aa ccllaassss hhiieerraarrcchhyy.. TTyyppiiccaallllyy ccoonnttaaiinnss oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss –SSuubbccllaasssseess mmuusstt oovveerrrriiddee iiff tthhee ssuubbccllaasssseess aarree ttoo bbee ccoonnccrreettee.. IInnssttaannccee vvaarriiaabblleess aanndd ccoonnccrreettee mmeetthhooddss ooff aann aabbssttrraacctt ccllaassss ssuubbjjeecctt ttoo tthhee nnoorrmmaall rruulleess ooff iinnhheerriittaannccee.. 15
  • 16. BBeewwaarree!! CCoommppiillee TTiimmee EErrrroorrss AAtttteemmppttiinngg ttoo iinnssttaannttiiaattee aann oobbjjeecctt ooff aann aabbssttrraacctt ccllaassss FFaaiilluurree ttoo iimmpplleemmeenntt aa ssuuppeerrccllaassss’’ss aabbssttrraacctt mmeetthhooddss iinn aa ssuubbccllaassss – uunnlleessss tthhee ssuubbccllaassss iiss aallssoo ddeeccllaarreedd aabbssttrraacctt.. 16
  • 17. Creating AAbbssttrraacctt SSuuppeerrccllaassss 17 EEmmppllooyyeeee aabbssttrraacctt ssuuppeerrccllaassss EEmmppllooyyeeee,, FFiigguurree 1100..44 – eeaarrnniinnggss iiss ddeeccllaarreedd aabbssttrraacctt NNoo iimmpplleemmeennttaattiioonn ccaann bbee ggiivveenn ffoorr eeaarrnniinnggss iinn tthhee EEmmppllooyyeeee aabbssttrraacctt ccllaassss – AAnn aarrrraayy ooff EEmmppllooyyeeee vvaarriiaabblleess wwiillll ssttoorree rreeffeerreenncceess ttoo ssuubbccllaassss oobbjjeeccttss eeaarrnniinnggss mmeetthhoodd ccaallllss ffrroomm tthheessee vvaarriiaabblleess wwiillll ccaallll tthhee aapppprroopprriiaattee vveerrssiioonn ooff tthhee eeaarrnniinnggss mmeetthhoodd
  • 18. EExxaammppllee BBaasseedd oonn EEmmppllooyyeeee 18 AAbbssttrraacctt CClalassss Concrete Classes Concrete Classes CClilcickk oonn CClalasssseess ttoo sseeee ssoouurrccee ccooddee
  • 19. Polymorphic iinntteerrffaaccee ffoorr tthhee EEmmppllooyyeeee hhiieerraarrcchhyy ccllaasssseess.. 19
  • 20. NNoottee iinn EExxaammppllee HHiieerraarrcchhyy 20 DDyynnaammiicc bbiinnddiinngg –AAllssoo kknnoowwnn aass llaattee bbiinnddiinngg –CCaallllss ttoo oovveerrrriiddddeenn mmeetthhooddss aarree rreessoollvveedd aatt eexxeeccuuttiioonn ttiimmee,, bbaasseedd oonn tthhee ttyyppee ooff oobbjjeecctt rreeffeerreenncceedd iinnssttaanncceeooff ooppeerraattoorr –DDeetteerrmmiinneess wwhheetthheerr aann oobbjjeecctt iiss aann iinnssttaannccee ooff aa cceerrttaaiinn ttyyppee
  • 21. HHooww DDoo TThheeyy DDoo TThhaatt?? 21 HHooww ddooeess iitt wwoorrkk?? –AAcccceessss aa ddeerriivveedd oobbjjeecctt vviiaa bbaassee ccllaassss ppooiinntteerr – IInnvvookkee aann aabbssttrraacctt mmeetthhoodd –AAtt rruunn ttiimmee tthhee ccoorrrreecctt vveerrssiioonn ooff tthhee mmeetthhoodd iiss uusseedd DDeessiiggnn ooff tthhee VV--TTaabbllee –NNoottee ddeessccrriippttiioonn ffrroomm CC++++
  • 22. NNoottee iinn EExxaammppllee HHiieerraarrcchhyy 22 DDoowwnnccaassttiinngg –CCoonnvveerrtt aa rreeffeerreennccee ttoo aa ssuuppeerrccllaassss ttoo aa rreeffeerreennccee ttoo aa ssuubbccllaassss –AAlllloowweedd oonnllyy iiff tthhee oobbjjeecctt hhaass aann iiss--aa rreellaattiioonnsshhiipp wwiitthh tthhee ssuubbccllaassss ggeettCCllaassss mmeetthhoodd – IInnhheerriitteedd ffrroomm OObbjjeecctt –RReettuurrnnss aann oobbjjeecctt ooff ttyyppee CCllaassss ggeettNNaammee mmeetthhoodd ooff ccllaassss CCllaassss –RReettuurrnnss tthhee ccllaassss’’ss nnaammee
  • 23. SSuuppeerrccllaassss AAnndd SSuubbccllaassss 23 AAssssiiggnnmmeenntt RRuulleess  AAssssiiggnniinngg aa ssuuppeerrccllaassss rreeffeerreennccee ttoo ssuuppeerrccllaassss vvaarriiaabbllee ssttrraaiigghhttffoorrwwaarrdd  SSuubbccllaassss rreeffeerreennccee ttoo ssuubbccllaassss vvaarriiaabbllee ssttrraaiigghhttffoorrwwaarrdd  SSuubbccllaassss rreeffeerreennccee ttoo ssuuppeerrccllaassss vvaarriiaabbllee ssaaffee – bbeeccaauussee ooff iiss--aa rreellaattiioonnsshhiipp – RReeffeerrrriinngg ttoo ssuubbccllaassss--oonnllyy mmeemmbbeerrss tthhrroouugghh ssuuppeerrccllaassss vvaarriiaabblleess aa ccoommppiillaattiioonn eerrrroorr  SSuuppeerrccllaassss rreeffeerreennccee ttoo aa ssuubbccllaassss vvaarriiaabbllee aa ccoommppiillaattiioonn eerrrroorr – DDoowwnnccaassttiinngg ccaann ggeett aarroouunndd tthhiiss eerrrroorr
  • 24. ffiinnaall MMeetthhooddss aanndd CCllaasssseess 24 ffiinnaall mmeetthhooddss – CCaannnnoott bbee oovveerrrriiddddeenn iinn aa ssuubbccllaassss – pprriivvaattee aanndd ssttaattiicc mmeetthhooddss iimmpplliicciittllyy ffiinnaall – ffiinnaall mmeetthhooddss aarree rreessoollvveedd aatt ccoommppiillee ttiimmee,, tthhiiss iiss kknnoowwnn aass ssttaattiicc bbiinnddiinngg CCoommppiilleerrss ccaann ooppttiimmiizzee bbyy iinnlliinniinngg tthhee ccooddee ffiinnaall ccllaasssseess – CCaannnnoott bbee eexxtteennddeedd bbyy aa ssuubbccllaassss – AAllll mmeetthhooddss iinn aa ffiinnaall ccllaassss iimmpplliicciittllyy ffiinnaall
  • 25. WWhhyy UUssee IInntteerrffaacceess JJaavvaa hhaass ssiinnggllee iinnhheerriittaannccee,, oonnllyy TThhiiss mmeeaannss tthhaatt aa cchhiilldd ccllaassss iinnhheerriittss ffrroomm oonnllyy oonnee ppaarreenntt ccllaassss SSoommeettiimmeess mmuullttiippllee iinnhheerriittaannccee wwoouulldd bbee ccoonnvveenniieenntt IInntteerrffaacceess ggiivvee JJaavvaa ssoommee ooff tthhee aaddvvaannttaaggeess ooff mmuullttiippllee iinnhheerriittaannccee wwiitthhoouutt iinnccuurrrriinngg tthhee ddiissaaddvvaannttaaggeess 25
  • 26. WWhhyy UUssee IInntteerrffaacceess PPrroovviiddee ccaappaabbiilliittyy ffoorr uunnrreellaatteedd ccllaasssseess ttoo iimmpplleemmeenntt aa sseett ooff ccoommmmoonn mmeetthhooddss DDeeffiinnee aanndd ssttaannddaarrddiizzee wwaayyss ppeeooppllee aanndd ssyysstteemmss ccaann iinntteerraacctt IInntteerrffaaccee ssppeecciiffiieess wwhhaatt ooppeerraattiioonnss mmuusstt bbee ppeerrmmiitttteedd DDooeess nnoott ssppeecciiffyy hhooww ppeerrffoorrmmeedd 26
  • 27. WWhhaatt iiss aann IInntteerrffaaccee?? AAnn iinntteerrffaaccee iiss aa ccoolllleeccttiioonn ooff ccoonnssttaannttss aanndd mmeetthhoodd ddeeccllaarraattiioonnss AAnn iinntteerrffaaccee ddeessccrriibbeess aa sseett ooff mmeetthhooddss tthhaatt ccaann bbee ccaalllleedd oonn aann oobbjjeecctt TThhee mmeetthhoodd ddeeccllaarraattiioonnss ddoo nnoott iinncclluuddee aann iimmpplleemmeennttaattiioonn 27 – tthheerree iiss nnoo mmeetthhoodd bbooddyy
  • 28. WWhhaatt iiss aann IInntteerrffaaccee?? AA cchhiilldd ccllaassss tthhaatt eexxtteennddss aa ppaarreenntt ccllaassss ccaann aallssoo iimmpplleemmeenntt aann iinntteerrffaaccee ttoo ggaaiinn ssoommee aaddddiittiioonnaall bbeehhaavviioorr IImmpplleemmeennttiinngg aann iinntteerrffaaccee iiss aa ““pprroommiissee”” ttoo iinncclluuddee tthhee ssppeecciiffiieedd mmeetthhoodd((ss)) AA mmeetthhoodd iinn aann iinntteerrffaaccee ccaannnnoott bbee mmaaddee pprriivvaattee 28
  • 29. WWhheenn AA CCllaassss DDeeffiinniittiioonn IImmpplleemmeennttss AAnn IInntteerrffaaccee:: IItt mmuusstt iimmpplleemmeenntt eeaacchh mmeetthhoodd iinn tthhee iinntteerrffaaccee EEaacchh mmeetthhoodd mmuusstt bbee ppuubblliicc ((eevveenn tthhoouugghh tthhee iinntteerrffaaccee mmiigghhtt nnoott ssaayy ssoo)) CCoonnssttaannttss ffrroomm tthhee iinntteerrffaaccee ccaann bbee uusseedd aass iiff tthheeyy hhaadd bbeeeenn ddeeffiinneedd iinn tthhee ccllaassss ((TThheeyy sshhoouulldd nnoott bbee rree--ddeeffiinneedd iinn tthhee ccllaassss)) 29
  • 30. Declaring CCoonnssttaannttss wwiitthh IInntteerrffaacceess IInntteerrffaacceess ccaann bbee uusseedd ttoo ddeeccllaarree ccoonnssttaannttss uusseedd iinn mmaannyy ccllaassss ddeeccllaarraattiioonnss – TThheessee ccoonnssttaannttss aarree iimmpplliicciittllyy ppuubblliicc,, ssttaattiicc aanndd ffiinnaall –UUssiinngg aa ssttaattiicc iimmppoorrtt ddeeccllaarraattiioonn aalllloowwss cclliieennttss ttoo uussee tthheessee ccoonnssttaannttss wwiitthh jjuusstt tthheeiirr nnaammeess 30
  • 31. Implementation vvss.. IInntteerrffaaccee 31 IInnhheerriittaannccee IImmpplleemmeennttaattiioonn IInnhheerriittaannccee  FFuunnccttiioonnaalliittyy hhiigghh iinn tthhee hhiieerraarrcchhyy  EEaacchh nneeww ssuubbccllaassss iinnhheerriittss oonnee oorr mmoorree mmeetthhooddss ddeeccllaarreedd iinn ssuuppeerrccllaassss  SSuubbccllaassss uusseess ssuuppeerrccllaassss ddeeccllaarraattiioonnss IInntteerrffaaccee IInnhheerriittaannccee  FFuunnccttiioonnaalliittyy lloowweerr iinn hhiieerraarrcchhyy  SSuuppeerrccllaassss ssppeecciiffiieess oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss  MMuusstt bbee ddeeccllaarreedd ffoorr eeaacchh ccllaassss iinn hhiieerraarrcchhyy  OOvveerrrriiddddeenn ffoorr ssuubbccllaassss--ssppeecciiffiicc iimmpplleemmeennttaattiioonnss
  • 32. CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess DDeeccllaarraattiioonn bbeeggiinnss wwiitthh iinntteerrffaaccee kkeeyywwoorrdd CCllaasssseess iimmpplleemmeenntt aann iinntteerrffaaccee ((aanndd iittss mmeetthhooddss)) CCoonnttaaiinnss ppuubblliicc aabbssttrraacctt mmeetthhooddss –CCllaasssseess ((tthhaatt iimmpplleemmeenntt tthhee iinntteerrffaaccee)) mmuusstt iimmpplleemmeenntt tthheessee mmeetthhooddss 32
  • 33. CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess CCoonnssiiddeerr tthhee ppoossssiibbiilliittyy ooff hhaavviinngg aa ccllaassss wwhhiicchh mmaanniippuullaatteess mmaatthheemmaattiiccaall ffuunnccttiioonnss YYoouu wwaanntt ttoo sseenndd aa ffuunnccttiioonn aass aa ppaarraammeetteerr –NNoottee tthhaatt CC++++ aalllloowwss tthhiiss ddiirreeccttllyy – JJaavvaa ddooeess nnoott TThhiiss ttaasskk ccaann bbee aaccccoommpplliisshheedd wwiitthh iinntteerrffaacceess 33
  • 34. CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess DDeeccllaarree iinntteerrffaaccee FFuunnccttiioonn DDeeccllaarree ccllaassss MMyyFFuunnccttiioonn wwhhiicchh iimmpplleemmeennttss FFuunnccttiioonn NNoottee ootthheerr ffuunnccttiioonnss wwhhiicchh aarree ssuubbccllaassss oobbjjeeccttss ooff MMyyFFuunnccttiioonn VViieeww tteesstt pprrooggrraamm wwhhiicchh ppaasssseess FFuunnccttiioonn ssuubbccllaassss oobbjjeeccttss ttoo ffuunnccttiioonn mmaanniippuullaattiioonn mmeetthhooddss 34
  • 35. CCaassee SSttuuddyy:: AA PPaayyaabbllee HHiieerraarrcchhyy 35 PPaayyaabbllee iinntteerrffaaccee –CCoonnttaaiinnss mmeetthhoodd ggeettPPaayymmeennttAAmmoouunntt – IIss iimmpplleemmeenntteedd bbyy tthhee IInnvvooiiccee aanndd EEmmppllooyyeeee ccllaasssseess Click to view the test program
  • 36. EEnndd ooff CChhaapptteerr 1100 LLeeccttuurree 36
  • 37. Following slides aarree ffrroomm pprreevviioouuss eeddiittiioonn.. LLiinnkkss mmaayy nnoott wwoorrkk.. 37
  • 38. SSoouurrccee CCooddee ffoorr SShhaappee SSuuppeerrccllaassss 38 HHiieerraarrcchhyy SShhaappee ssuuppeerrccllaassss,, FFiigguurree 1100..66 –NNoottee aabbssttrraacctt mmeetthhoodd,, ggeettNNaammee PPooiinntt ssuubbccllaassss,, FFiigguurree 1100..77 –NNoottee,, eexxtteennddss SShhaappee,, oovveerrrriiddee ooff ggeettNNaammee CCiirrccllee ssuubbccllaassss,, FFiigguurree 1100..88 –NNoottee eexxtteennddss PPooiinntt,, oovveerrrriiddee ooff ggeettAArreeaa,, ggeettNNaammee,, aanndd ttooSSttrriinngg CCyylliinnddeerr ssuubbccllaassss,, FFiigguurree 1100..99 –NNoottee eexxtteennddss CCiirrccllee,, oovveerrrriiddee ooff ggeettAArreeaa,, ggeettNNaammee,, aanndd ttooSSttrriinngg
  • 39. SSoouurrccee CCooddee ffoorr SShhaappee SSuuppeerrccllaassss 39 HHiieerraarrcchhyy DDrriivveerr pprrooggrraamm ttoo ddeemmoonnssttrraattee,, FFiigguurree 1100..1100 –NNoottee aarrrraayy ooff ssuuppeerrccllaassss rreeffeerreenncceess OOuuttppuutt ooff pprrooggrraamm
  • 40. PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm CCllaassss hhiieerraarrcchhyy ffoorr ppoollyymmoorrpphhiicc ppaayyrroollll aapppplliiccaattiioonn 40 Employee SalariedEmployee CommissionEmployee HourlyEmployee BasePlusCommissionEmployee
  • 41. PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm AAbbssttrraacctt ssuuppeerrccllaassss,, EEmmppllooyyeeee,, FFiigguurree 1100..1122 –NNoottee aabbssttrraacctt ccllaassss ssppeecciiffiiccaattiioonn,, aabbssttrraacctt eeaarrnniinnggss mmeetthhoodd AAbbssttrraacctt ssuubbccllaassss,, SSaallaarriieeddEEmmppllooyyeeee,, FFiigguurree 1100..1133 –NNoottee eexxtteennddss EEmmppllooyyeeee,, oovveerrrriiddee ooff eeaarrnniinnggss mmeetthhoodd LLooookk aatt ootthheerr ssuubbccllaasssseess iinn tteexxtt,, ppgg 46611 …… –NNoottee hheerree aallssoo tthhee oovveerrrriiddee ooff 41 eeaarrnniinnggss
  • 42. PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm VViieeww tteesstt pprrooggrraamm,, FFiigguurree 1100..1177 –NNoottee aarrrraayy ooff ssuuppeerrccllaassss rreeffeerreenncceess wwhhiicchh aarree ppooiinntteedd aatt vvaarriioouuss ssuubbccllaassss oobbjjeeccttss –NNoottee ggeenneerriicc ccaallllss ooff ttooSSttrriinngg mmeetthhoodd –NNoottee uussee ooff iinnssttaannttcceeooff ooppeerraattoorr –CCoonnssiiddeerr uussee ooff ddoowwnnccaassttiinngg ((lliinnee 3377)) –NNoottee uussee ooff ggeettCCllaassss(())..ggeettNNaammee(()) mmeetthhoodd GGiivveess aacccceessss ttoo tthhee nnaammee ooff tthhee ccllaassss 42
  • 43. PPoollyymmoorrpphhiicc PPaayyrroollll SSyysstteemm 43 OOuuttppuutt ooff tthhee ppaayyrroollll tteessttiinngg pprrooggrraamm NNoottee rreessuullttss ooff ggeettCCllaassss(())..ggeettNNaammee(()) ccaallllss
  • 44. CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess VViieeww iimmpplleemmeennttaattiioonn ooff tthhee iinntteerrffaaccee SShhaappee,, FFiigguurree 1100..1199 NNoottee tthhee ffoolllloowwiinngg:: – LLiinnee 4 ppuubblliicc ccllaassss PPooiinntt eexxtteennddss OObbjjeecctt 44 iimmpplleemmeennttss SShhaappee {{ …… –DDeeccllaarraattiioonn ooff aaddddiittiioonnaall mmeetthhooddss –DDeeccllaarraattiioonn ooff aabbssttrraacctt mmeetthhooddss ggeettAArreeaa,, ggeettVVoolluummee,, aanndd ggeettNNaammee
  • 45. 45 NNeesstteedd CCllaasssseess TToopp--lleevveell ccllaasssseess –NNoott ddeeccllaarreedd iinnssiiddee aa ccllaassss oorr aa mmeetthhoodd NNeesstteedd ccllaasssseess –DDeeccllaarreedd iinnssiiddee ootthheerr ccllaasssseess – IInnnneerr ccllaasssseess NNoonn--ssttaattiicc nneesstteedd ccllaasssseess DDeemmoonnssttrraatteedd iinn FFiigguurree 1100..2222 –RRuunn tthhee pprrooggrraamm –AAuuddiioo
  • 46. MMeennttiioonneedd IInn TThhee AAuuddiioo 46 IInnhheerriittaannccee HHiieerraarrcchhyy PPaanneess ooff aa JJFFrraammee –BBaacckkggrroouunndd –CCoonntteenntt –GGllaassss Object Component Container Window Frame JFrame
  • 47. MMeennttiioonneedd IInn TThhee AAuuddiioo  TThhrreeee tthhiinnggss rreeqquuiirreedd wwhheenn 47 ppeerrffoorrmmiinngg eevveennttss 11.. IImmpplleemmeenntt tthhee iinntteerrffaaccee 22.. RReeggiisstteerr tthhee eevveenntt hhaannddlleerrss 33.. SSppeecciiffiiccaallllyy iimmpplleemmeenntt tthhee aaccttiioonnPPeerrffoorrmmeedd mmeetthhooddss
  • 48. 48 NNeesstteedd CCllaasssseess AAnn iinnnneerr ccllaassss iiss aalllloowweedd ttoo ddiirreeccttllyy aacccceessss iittss iinnnneerr ccllaassss''ss vvaarriiaabblleess aanndd mmeetthhooddss WWhheenn tthhiiss uusseedd iinn aann iinnnneerr ccllaassss –RReeffeerrss ttoo ccuurrrreenntt iinnnneerr--ccllaassss oobbjjeecctt TToo aacccceessss oouutteerr--ccllaassss uussiinngg tthhiiss – PPrreecceeddee tthhiiss wwiitthh oouutteerr--ccllaassss nnaammee
  • 49. 49 NNeesstteedd CCllaasssseess AAnnoonnyymmoouuss iinnnneerr ccllaassss –DDeeccllaarreedd iinnssiiddee aa mmeetthhoodd ooff aa ccllaassss –HHaass nnoo nnaammee IInnnneerr ccllaassss ddeeccllaarreedd iinnssiiddee aa mmeetthhoodd –CCaann aacccceessss oouutteerr ccllaassss''ss mmeemmbbeerrss – LLiimmiitteedd ttoo llooccaall vvaarriiaabblleess ooff mmeetthhoodd iinn wwhhiicchh ddeeccllaarreedd NNoottee uussee ooff aannoonnyymmoouuss iinnnneerr ccllaassss,, FFiigguurree 1100..2233
  • 50. NNootteess oonn NNeesstteedd CCllaasssseess  CCoommppiilliinngg ccllaassss tthhaatt ccoonnttaaiinnss nneesstteedd ccllaassss – RReessuullttss iinn sseeppaarraattee ..ccllaassss ffiillee – OOuutteerrCCllaassssNNaammee$$IInnnneerrCCllaassssNNaammee..ccllaassss  IInnnneerr ccllaasssseess wwiitthh nnaammeess ccaann bbee ddeeccllaarreedd aass – ppuubblliicc,, pprrootteecctteedd,, pprriivvaattee oorr ppaacckkaaggee aacccceessss 50
  • 51. NNootteess oonn NNeesstteedd CCllaasssseess AAcccceessss oouutteerr ccllaassss’’ss tthhiiss rreeffeerreennccee OOuutteerrCCllaassssNNaammee..tthhiiss OOuutteerr ccllaassss iiss rreessppoonnssiibbllee ffoorr ccrreeaattiinngg iinnnneerr ccllaassss oobbjjeeccttss OOuutteerrCCllaassssNNaammee..IInnnneerrCCllaassssNNaammee iinnnneerrRReeff == 51 rreeff..nneeww IInnnneerrCCllaassssNNaammee(());; NNeesstteedd ccllaasssseess ccaann bbee ddeeccllaarreedd ssttaattiicc – OObbjjeecctt ooff oouutteerr ccllaassss nneeeedd nnoott bbee ccrreeaatteedd – SSttaattiicc nneesstteedd ccllaassss ddooeess nnoott hhaavvee aacccceessss ttoo oouutteerr ccllaassss''ss nnoonn--ssttaattiicc mmeemmbbeerrss
  • 52. Type-Wrapper CCllaasssseess ffoorr PPrriimmiittiivvee 52 TTyyppeess EEaacchh pprriimmiittiivvee ttyyppee hhaass oonnee –CChhaarraacctteerr,, BByyttee,, IInntteeggeerr,, BBoooolleeaann,, eettcc.. EEnnaabbllee ttoo rreepprreesseenntt pprriimmiittiivvee aass OObbjjeecctt – PPrriimmiittiivvee vvaalluueess ccaann bbee pprroocceesssseedd ppoollyymmoorrpphhiiccaallllyy uussiinngg wwrraappppeerr ccllaasssseess DDeeccllaarreedd aass ffiinnaall MMaannyy mmeetthhooddss aarree ddeeccllaarreedd ssttaattiicc
  • 53. Invoking SSuuppeerrccllaassss MMeetthhooddss ffrroomm 53 SSuubbccllaassss OObbjjeeccttss RReeccaallll tthhee ppooiinntt aanndd cciirrccllee hhiieerraarrcchhyy –NNoottee :: AAssssiiggnnmmeenntt ooff ssuuppeerrccllaassss rreeffeerreennccee ttoo ssuuppeerrccllaassss vvaarriiaabbllee –AAssssiiggnnmmeenntt ooff ssuubbccllaassss rreeffeerreennccee ttoo ssuubbccllaassss vvaarriiaabbllee NNoo ssuurrpprriisseess …… bbuutt tthhee ""iiss--aa"" rreellaattiioonnsshhiipp mmaakkeess ppoossssiibbllee –AAssssiiggnnmmeenntt ooff ssuubbccllaassss rreeffeerreennccee ttoo ssuuppeerrccllaassss vvaarriiaabbllee SSeeee FFiigguurree 1100..11
  • 54. Using SSuuppeerrccllaassss RReeffeerreenncceess wwiitthh SSuubbccllaassss--TTyyppee VVaarriiaabblleess SSuuppppoossee wwee hhaavvee aa ssuuppeerrccllaassss oobbjjeecctt PPooiinntt33 ppooiinntt == nneeww PPooiinntt33 ((3300,, 4400));; 54 TThheenn aa ssuubbccllaassss rreeffeerreennccee CCiirrccllee44 cciirrccllee;; IItt wwoouulldd bbee iilllleeggaall ttoo hhaavvee tthhee ssuubbccllaassss rreeffeerreennccee aaiimmeedd aatt tthhee ssuuppeerrccllaassss oobbjjeecctt cciirrccllee == ppooiinntt;;
  • 55. SSuubbccllaassss MMeetthhoodd CCaallllss vviiaa SSuuppeerrccllaassss--TTyyppee VVaarriiaabblleess CCoonnssiiddeerr aaiimmiinngg aa ssuubbccllaassss rreeffeerreennccee aatt aa ssuuppeerrccllaassss oobbjjeecctt – IIff yyoouu uussee tthhiiss ttoo aacccceessss aa ssuubbccllaassss-- oonnllyy mmeetthhoodd iitt iiss iilllleeggaall 55 NNoottee FFiigguurree 1100..33 – LLiinneess 2222 -- 2233
  • 56. Summary ooff LLeeggaall AAssssiiggnnmmeennttss bbeettwweeeenn SSuuppeerr-- aanndd SSuubbccllaassss VVaarriiaabblleess  AAssssiiggnniinngg ssuuppeerrccllaassss rreeffeerreennccee ttoo ssuuppeerrccllaassss-- ttyyppee vvaarriiaabbllee OOKK  AAssssiiggnniinngg ssuubbccllaassss rreeffeerreennccee ttoo ssuubbccllaassss--ttyyppee vvaarriiaabbllee OOKK  AAssssiiggnniinngg ssuubbccllaassss oobbjjeecctt''ss rreeffeerreennccee ttoo ssuuppeerrccllaassss ttyyppee--vvaarriiaabbllee,, ssaaffee – AA cciirrccllee ""iiss aa"" ppooiinntt – OOnnllyy ppoossssiibbllee ttoo iinnvvookkee ssuuppeerrccllaassss mmeetthhooddss  DDoo NNOOTT aassssiiggnn ssuuppeerrccllaassss rreeffeerreennccee ttoo ssuubbccllaassss--ttyyppee vvaarriiaabbllee – YYoouu ccaann ccaasstt tthhee ssuuppeerrccllaassss rreeffeerreennccee ttoo aa ssuubbccllaassss ttyyppee ((eexxpplliicciittllyy)) 56
  • 57. PPoollyymmoorrpphhiissmm EExxaammpplleess 57 SSuuppppoossee ddeessiiggnniinngg vviiddeeoo ggaammee  SSuuppeerrccllaassss SSppaacceeOObbjjeecctt – SSuubbccllaasssseess MMaarrttiiaann,, SSppaacceeSShhiipp,, LLaasseerrBBeeaamm – CCoonnttaaiinnss mmeetthhoodd ddrraaww  TToo rreeffrreesshh ssccrreeeenn – SSeenndd ddrraaww mmeessssaaggee ttoo eeaacchh oobbjjeecctt – SSaammee mmeessssaaggee hhaass ““mmaannyy ffoorrmmss”” ooff rreessuullttss  EEaassyy ttoo aadddd ccllaassss MMeerrccuurriiaann – EExxtteennddss SSppaacceeOObbjjeecctt – PPrroovviiddeess iittss oowwnn iimmpplleemmeennttaattiioonn ooff ddrraaww  PPrrooggrraammmmeerr ddooeess nnoott nneeeedd ttoo cchhaannggee ccooddee – CCaallllss ddrraaww rreeggaarrddlleessss ooff oobbjjeecctt’’ss ttyyppee – MMeerrccuurriiaann oobbjjeeccttss ““pplluugg rriigghhtt iinn””
  • 58. 58 PPoollyymmoorrpphhiissmm EEnnaabblleess pprrooggrraammmmeerrss ttoo ddeeaall iinn ggeenneerraalliittiieess – LLeett eexxeeccuuttiioonn--ttiimmee eennvviirroonnmmeenntt hhaannddllee ssppeecciiffiiccss AAbbllee ttoo ccoommmmaanndd oobbjjeeccttss ttoo bbeehhaavvee iinn mmaannnneerrss aapppprroopprriiaattee ttoo tthhoossee oobbjjeeccttss –DDoonn''tt nneeeedd ttoo kknnooww ttyyppee ooff tthhee oobbjjeecctt –OObbjjeeccttss nneeeedd oonnllyy ttoo bbeelloonngg ttoo ssaammee iinnhheerriittaannccee hhiieerraarrcchhyy
  • 59. AAbbssttrraacctt CCllaasssseess aanndd MMeetthhooddss AAbbssttrraacctt ccllaasssseess nnoott rreeqquuiirreedd,, bbuutt rreedduuccee cclliieenntt ccooddee ddeeppeennddeenncciieess TToo mmaakkee aa ccllaassss aabbssttrraacctt –DDeeccllaarree wwiitthh kkeeyywwoorrdd aabbssttrraacctt –CCoonnttaaiinn oonnee oorr mmoorree aabbssttrraacctt mmeetthhooddss 59 ppuubblliicc aabbssttrraacctt vvooiidd ddrraaww(());; –AAbbssttrraacctt mmeetthhooddss NNoo iimmpplleemmeennttaattiioonn,, mmuusstt bbee oovveerrrriiddddeenn
  • 60. IInnhheerriittiinngg IInntteerrffaaccee aanndd 60 IImmpplleemmeennttaattiioonn MMaakkee aabbssttrraacctt ssuuppeerrccllaassss SShhaappee  AAbbssttrraacctt mmeetthhoodd ((mmuusstt bbee iimmpplleemmeenntteedd)) – ggeettNNaammee,, pprriinntt – DDeeffaauulltt iimmpplleemmeennttaattiioonn ddooeess nnoott mmaakkee sseennssee  MMeetthhooddss mmaayy bbee oovveerrrriiddddeenn – ggeettAArreeaa,, ggeettVVoolluummee  DDeeffaauulltt iimmpplleemmeennttaattiioonnss rreettuurrnn 00..00 – IIff nnoott oovveerrrriiddddeenn,, uusseess ssuuppeerrccllaassss ddeeffaauulltt iimmpplleemmeennttaattiioonn  SSuubbccllaasssseess PPooiinntt,, CCiirrccllee,, CCyylliinnddeerr
  • 61. Polymorphic Interface For The getArea getVolume getName toString 61 Shape Point Circle Cylinder Shape Hierarchy Class 0.0 0.0 abstract default Object implement 0.0 0.0 "Point" [x,y] πr2 0.0 "Circle" center=[x,y]; radius=r 2πr2 +2πrh πr2h "Cylinder" center=[x,y]; radius=r; height=h Shape Point Circle Cylinder
  • 62. CCrreeaattiinngg aanndd UUssiinngg IInntteerrffaacceess AAllll tthhee ssaammee ""iiss--aa"" rreellaattiioonnsshhiippss aappppllyy wwhheenn aann iinntteerrffaaccee iinnhheerriittaannccee iiss uusseedd OObbjjeeccttss ooff aannyy ccllaassss tthhaatt eexxtteenndd tthhee iinntteerrffaaccee aarree aallssoo oobbjjeeccttss ooff tthhee iinntteerrffaaccee ttyyppee – CCiirrccllee eexxtteennddss PPooiinntt,, tthhuuss iitt iiss--aa SShhaappee MMuullttiippllee iinntteerrffaacceess aarree ppoossssiibbllee –CCoommmmaa--sseeppaarraatteedd lliisstt uusseedd iinn ddeeccllaarraattiioonn 62