Documente Academic
Documente Profesional
Documente Cultură
(QWHQGHQGRH$SOLFDQGR+HUDQoDHP-DYD
www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:http://www.devmedia.com.br/articles/viewcomp.asp?comp=24544
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