Sei sulla pagina 1di 5



(QWHQGHQGRH$SOLFDQGR+HUDQoDHP-DYD

www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:http://www.devmedia.com.br/articles/viewcomp.asp?comp=24544

Entendendo e Aplicando Herana em


Java
Veja nesse artigo um dos conceitos mais utilizados no
paradigma de orientao a objetos: a herana. Entenda o
processo de generalizao e aplique a herana em Java com
tudo que a linguagem oferece.

Nesseartigovamosaprenderumadasabstraesmaisimportantesdaorientaoaobjetos:a
herana.VeremoscomoapliclaemJava,equaisaspalavraschaveutilizadasnalinguagem
paraarepresentaodesteconceito.
AheranaumprincpiodaPOOquepermiteacriaodenovasclassesapartirdeoutras
previamentecriadas.Essasnovasclassessochamadasdesubclasses,ouclassesderivadas
easclassesjexistentes,quederamorigemssubclasses,sochamadasdesuperclasses,
ouclassesbase.Destemodopossvelcriarumahierarquiadessasclasses,tornando,assim,
classesmaisamplaseclassesmaisespecficas.Umasubclasseherdamtodoseatributosde
suasuperclasseapesardisso,podeescrevlosnovamenteparaumaformamaisespecfica
derepresentarocomportamentodomtodoherdado.
Paraesteartigo,utilizaremosoexemplodeumamodelagemdeumaescola,representando
alunos,eprofessoresefuncionriospoisprovvelquetenhamosalgumascaractersticas
comunsentreeles.Logo,paraquenoescrevamosomesmocdigoduasoumaisvezesem
classesdiferentes,podemoscriarumassuperclassechamadaPessoapararepresentartodos
osatoresdonossouniversoacadmico,inserindonelaoscomportamentoscomunsaostrs
tiposdepessoas.EsteprocessotemonomedeGeneralizao.
VejamosumapossvelmodelagemdaclassePessoa.
Listagem1:ClassePessoa



KWWSZZZGHYPHGLDFRPEUDUWLFOHVYLHZFRPSBIRUSULQWDVS"FRPS 





(QWHQGHQGRH$SOLFDQGR+HUDQoDHP-DYD


















Nesteprimeirocdigo,vemosqueaclassepessoapossuinome,CPF,edatadenascimento
comoatributosalmdeumconstrutor,querecebeestestrsdadoscomoparmetro,eassim
preencheosatributosdoobjeto.NacriaodeumobjetoPessoa,oprogramadevefornecer
seusdados.
Analisandoprofessores,alunosefuncionrios,vemosquetodospodem(devem)tercpf,nome
edatadenascimentoportanto,nadamaisjustoquecriarsubclassesdePessoapara
representalos.EmJava,criamosclassesderivadasutilizandoapalavraextends,seguidado
nomedasuperclasse.
Vejanalistagem2comoimplementaressastrssubclasses.
Listagem2:ClassesAluno,FuncionarioeProfessor





















 


 









KWWSZZZGHYPHGLDFRPEUDUWLFOHVYLHZFRPSBIRUSULQWDVS"FRPS 





(QWHQGHQGRH$SOLFDQGR+HUDQoDHP-DYD

Asnovasclassescriadaspossuemsuascaractersticas(atributosemtodos)prprias,mas
possuemtambmpropriedadescomuns:osatributosnome,datadenascimentoeCPF.
Podemosverquecadaconstrutordasnovasclassespossuiumachamadasuper(_nome,_cpf,
_data).Eoqueseriaisso?
Apalavrasuperrepresentaumachamadademtodoouacessoaumatributodasuperclasse,
porissotemessenome.Nonossocaso,estamosusandoosuperparainvocarconstrutorda
superclassePessoa,querecebeostrsparmetrosepreencheosatributosdoobjeto.Ento,
quandocriarmosumobjetodotipoAluno,porexemplo,utilizandonew
Aluno(nome,cpf,newDate()),aclasseAlunoinvocaroconstrutor
Pessoa(String,String,Date),eentoseusatributosseropreenchidoscomosdadosenviados
porparmetro.Podetestar!
Listagem3:Testandoachamadasuper.





  



 



Devemossaberquetodososmtodoseatributospblicoseprotegidosdasuperclassesero
herdados,casoutilizeseoextendsClassenadefiniodeumanovaclassederivada.
Portanto,osmtodoseatributosprivados(private)noseroherdados,enoteremosacesso
aelesnemcomautilizaodapalavraespecialsuper.
Apesardeaclassederivadaherdaroscomportamentospblicosdaclassebase,nada(ou
quasenada)impedequeimplementemosdenovoosmtodoseatributosquequisermosna
subclasse.Podemossobrescrevermtodosdassuperclasses,criandoassimumnovo
comportamentoparafunesespecficas.Vejamosumexemplodasobrescritademtodo.
Listagem4:Sobrescritademtodoparaclculodepreodecpiasparaalunosedemais
pessoas.






















KWWSZZZGHYPHGLDFRPEUDUWLFOHVYLHZFRPSBIRUSULQWDVS"FRPS 





(QWHQGHQGRH$SOLFDQGR+HUDQoDHP-DYD














Comopodemosobservar,acpiamaisbarataparaosalunos,entoomtodoprecisouser
sobrescrito.Precisamoslembrarqueasoutrasduasclassesquepermaneceramintactas,
FuncionarioeProfessor,herdaroomtodotirarCopias(int)daclassePessoa,e,portanto,
terosuascpiaspor0.10centavoscada,enquantoosalunospor0.07centavoscada.
Anteriormenteeuhaviadeixadosubentendidoquealgumacoisapodeimpedirquemtodos
sejamsobrescritos,eentovamosfalardissoagora.
Tratasedapalavraespecialfinal,utilizadanadeclaraodemtodoseatributos,ques
permiteumadeclaraodavariveloucomportamentoemquesto.Issosignificaquesena
listagem3omtodotirarCopias(int)daclassepessoafossedefinidocomofinal,seriaproibido
reescrevlonasubclasse.Adeclaraodomtodofinalseriacomomostradonalistagem5,a
seguir.
Listagem5:Declaraodemtodofinal





Dessaforma,aclasseAluno(ouqualqueroutraclassederivadadePessoa)estariaproibidade
sobrescreveromtodotirarCopias(int).
Agoraspraticarumpoucoparapercebermoscommaisfacilidadequandopodeocorrera
generalizao,paraevitarrepetiodecdigoemclassesdiferentesemelhoraralegibilidade
daestruturadoprograma.
Ataprxima,galera,ebonsestudos.


+XGVRQ*HRYDQH
(VWXGDQWHGHFLrQFLDGDFRPSXWDomRQD8QLYHUVLGDGH)HGHUDOGR5LR*UDQGHGR1RUWH)RFRHPDOJRULWPRVH
PDWHPiWLFDDSOLFDGD

KWWSZZZGHYPHGLDFRPEUDUWLFOHVYLHZFRPSBIRUSULQWDVS"FRPS 





(QWHQGHQGRH$SOLFDQGR+HUDQoDHP-DYD

KWWSZZZGHYPHGLDFRPEUDUWLFOHVYLHZFRPSBIRUSULQWDVS"FRPS