Professional Documents
Culture Documents
InterfacesXClassesAbstratas
InterfacesXClassesAbstratas
ComoinciodoparadigmadedesenvolvimentoOO,
algunstermossetornamcorriqueirosnomundode
programadoreseanalistasdesistema.Classes,herana,
polimorfismosoalgunsdestestermos.Nesteartigo
mostroasdiferenasesimilaridadesentreInterfacese
ClassesAbstratas.
Gostei(3)
Curtir
31
(0)
ComoinciodoparadigmadedesenvolvimentoOO,algunstermossetornamcorriqueiros
nomundodeprogramadoreseanalistasdesistema.Classes,herana,polimorfismoso
algunsdestestermos.
MassetratandodeClasses,sentiqueaindapersistemalgumasdvidasquantos
diferenasentreclassesdotipoAbstrataseInterfaces.
Socomunsosquestionamentos:Quandodevousarumaclasseabstrata?Quandodevo
usarumaInterface?Devousarasduas?
Naverdade,umaClasseAbstratasemqualquerimplementao,temoaspectparecidocom
umaInterface.Masambaspossuemvriasdiferenasesimilaridadesentresi.Pensando
nestetipodedvida,estepequenoartigotentaelucidaralgumasquestes.
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
1/4
9/10/2015
InterfacesXClassesAbstratas
Interfaces:
UmainterfacenoconsideradaumaClasseesimumaEntidade.
Nopossuiimplementao,apenasassinatura,ouseja,apenasadefiniodosseus
mtodossemocorpo.
Todososmtodossoabstratos.
SeusmtodossoimplicitamentePblicoseAbstratos.
NohcomofazerumainstnciadeumaInterfaceenemcomocriarumConstrutor.
Funcionamcomoumtipode"contrato",ondesoespecificadososatributos,mtodos
efunesqueasclassesqueimplementemessainterfacesoobrigadasaimplementar.
JqueC#nosuportaHeranasMltiplas,asInterfacessousadaspara
implementlas.
ClassesAbstratas:
Asclassesabstratasdevemconterpelomenosummtodoabstrato,quenotem
corpo.
umtipoespecialdeclassequenohcomocriarinstnciasdela.
usadaapenasparaserherdada,funcionacomoumasuperclasse.
Umagrandevantagemqueforaahierarquiaparatodasassubclasses.
umtipodecontratoquefazcomqueassubclassescontemplemasmesmas
hierarquiase/oupadres.
Overview:
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
2/4
9/10/2015
InterfacesXClassesAbstratas
QuandonoscriamosumaInterface,nsestamosbasicamentecriandoumsetdemtodos
semqualquerimplementaoquedeveserherdadoporoutrasclassesjimplementadas.A
vantagemquedestaformaconsegueseproverumcaminhoparaumaclasseserpartede
duasclasses:umaherdadahierarquicamenteeoutradaInterface.
QuandonoscriamosumaClasseAbstrata,nsestamoscriandoumaclassebasequepode
terumoumaismtodoscompletos,maspelomenosumoumaisdestesmtodostemque
criadosincompletos(semcorpo),istocaracterizaumaClasseAbstrata.
Valelembrarque,setodososmtododaClasseabstrataforemsemcorpo,elasetorna
umaInterface.
OpropsitodeumaClasseAbstrataproverumabasededefiniesdecomoumsetde
ClassesDerivadasirotrabalhareentopermitirosprogramadoresdepreencheras
implementaesnasClassesderivadas.
Abaixoumquadrocomparativoparatornarmaisfcilacompreensoentrediferenase
similaridadesentreClassesAbstrataseInterfaces.
Caracterstica
Interface
ClasseAbstrata
Heranamltipla
Umaclassepodeimplementar
diversasinterfaces
Umaclassepodeherdarsomente
umaclasse
Implementao
Padro
Umainterfacenopodeconter
qualquertipodecdigo,muitomenos
cdigopadro.
Umaclasseabstratapodefornecer
cdigocompleto,cdigopadroouter
apenasadeclaraodeseuesqueleto
paraserposteriormentesobrescrita.
Constantes
Suportesomenteconstantesdotipo
esttica.
Podeconterconstantesestticasede
instncia.
Componentesde
terceiros
Umaimplementaodeumainterface Umaclassedeterceirosprecisaser
podeserincludaaqualquerclasse
reescritaparaestendersomentea
deterceiros.
partirdaclasseabstrata.
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
3/4
9/10/2015
InterfacesXClassesAbstratas
Homogeneidade
Setodasasdiversas
implementaescompartilhama
assinaturadomtodoentoa
interfacefuncionamelhor.
Seasvriasimplementaesso
todasdotipoecompartilhamum
comportamentoestatuscomum,
entoaclasseabstratafunciona
melhor.
Manuteno
Seocdigodoseuclienteconversa
Idntico
somenteemtermosdeumainterface,
vocpodefacilmentealterara
implementaoconcretausandoum
mtodofactory.
Velocidade
Lento,requertrabalhoextrapara
encontraromtodocorrespondente
naclasseatual.
Rpido
Clareza
Todasasdeclaraesdeconstantes
emumainterfaceso
presumidamentepublicasou
estticas.
Vocpodeporcdigocompartilhado
emumaclasseabstrata.Vocpode
usarcdigoparacomputarovalor
inicialdesuasconstantesevariveis
deinstnciaouestticas.
Funcionalidades
Adicionais
Sevocincluirumnovomtodoem
umainterfacevocprecisaajustar
todasasimplementaesda
interface.
Sevocincluirumnovomtodoem
umaclasseabstratavoctema
opodeforneceruma
implementaopadroparaele.
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
4/4