You are on page 1of 4

9/10/2015

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

You might also like