Você está na página 1de 7

9/10/2015

EntendendointerfacesemJava

EntendendointerfacesemJava
Vejanesteartigocomofuncionamecomoutilizar
interfaces,umrecursodaslinguagensorientadasa
objetosquepermitedefinirumpadroaserseguidopor
classesdeumdeterminadocontexto.

21

Gostei(3)

Curtir

16

(0)

Introduo
AinterfaceumrecursomuitoutilizadoemJava,bemcomonamaioriadaslinguagens
orientadasaobjeto,paraobrigaraumdeterminadogrupodeclassesatermtodosou
propriedadesemcomumparaexistiremumdeterminadocontexto,contudoosmtodos
podemserimplementadosemcadaclassedeumamaneiradiferente.Podesedizer,a
grossomodo,queumainterfaceumcontratoquequandoassumidoporumaclassedeve
serimplementado.

UtilizandointerfaceemJava
Dentrodasinterfacesexistemsomenteassinaturasdemtodosepropriedades,cabendo
classequeautilizarrealizaraimplementaodasassinaturas,dandocomportamentos
prticosaosmtodos.
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20

1/7

9/10/2015

EntendendointerfacesemJava

AbaixopossvelverumexemplodeumainterfacechamadaFiguraGeometricacomtrs
assinaturasdemtodosqueviroaserimplementadospelasclassesreferentessfiguras
geomtricas.
Listagem1:InterfaceFiguraGeometrica

publicinterfaceFiguraGeometrica
{
publicStringgetNomeFigura();
publicintgetArea();
publicintgetPerimetro();
}

Pararealizarachamada/refernciaaumainterfaceporumadeterminadaclasse,
necessrioadicionarapalavrachaveimplementsaofinaldaassinaturadaclassequeir
implementarainterfaceescolhida.
Sintaxe:
publicclassnome_classeimplementsnome_interface
Onde:
nome_classeNomedaclasseaserimplementada.
nome_InterfaceNomedainterfaceaseimplementadapelaclasse.
AbaixopossvelverduasclassesqueimplementamainterfaceFiguraGeometrica,uma
chamadaQuadradoeoutraTriangulo.
Listagem2:ClasseQuadrado

/**
*
*@authorRobsonFernandoGomes
*/
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20

2/7

9/10/2015

EntendendointerfacesemJava

publicclassQuadradoimplementsFiguraGeometrica{
privateintlado;
publicintgetLado(){
returnlado;
}
publicvoidsetLado(intlado){
this.lado=lado;
}

@Override
publicintgetArea(){
intarea=0;
area=lado*lado;
returnarea;
}
@Override
publicintgetPerimetro(){
intperimetro=0;
perimetro=lado*4;
returnperimetro;
}
@Override
publicStringgetNomeFigura(){
return"quadrado";
}
}

Listagem3:ClasseTriangulo

/**
*
*@authorRobsonFernandoGomes
*/
publicclassTrianguloimplementsFiguraGeometrica{
privateintbase;
privateintaltura;
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20

3/7

9/10/2015

EntendendointerfacesemJava

privateintladoA;
privateintladoB;
privateintladoC;
publicintgetAltura(){
returnaltura;
}
publicvoidsetAltura(intaltura){
this.altura=altura;
}
publicintgetBase(){
returnbase;
}
publicvoidsetBase(intbase){
this.base=base;
}
publicintgetLadoA(){
returnladoA;
}
publicvoidsetLadoA(intladoA){
this.ladoA=ladoA;
}
publicintgetLadoB(){
returnladoB;
}
publicvoidsetLadoB(intladoB){
this.ladoB=ladoB;
}
publicintgetLadoC(){
returnladoC;
}
publicvoidsetLadoC(intladoC){
this.ladoC=ladoC;
}
@Override
publicStringgetNomeFigura(){
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20

4/7

9/10/2015

EntendendointerfacesemJava

return"Triangulo";
}
@Override
publicintgetArea(){
intarea=0;
area=(base*altura)/2;
returnarea;
}
@Override
publicintgetPerimetro(){
intperimetro=0;
perimetro=ladoA+ladoB+ladoC;
returnperimetro;
}
}

Comopossvelveracima,ambasasclassesseguiramocontratodainterface
FiguraGeometrica,pormcadaumadelasaimplementoudemaneiradiferente.
Aocontrriodaheranaquelimitaumaclasseaherdarsomenteumaclassepaiporvez,
possvelqueumaclasseimplementevariasinterfacesaomesmotempo.
Imagine,porexemplo,umainterfacechamadaVeiculoeoutrachamadaMotor.
Listagem4:InterfaceVeiculo

/**
*
*@authorRobsonFernandoGomes
*/
publicinterfaceVeiculo{

publicStringgetNome();
publicStringgetId();
}

data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20

5/7

9/10/2015

EntendendointerfacesemJava

Listagem5:InterfaceMotor

/**
*
*@authorRobsonFernandoGomes
*/
publicinterfaceMotor{

publicStringgetModelo();
publicStringgetFabricante();
}

Aseguirpossvelvisualizaraimplementaodasinterfacesemumaclassechamada
Carro.
Listagem6:ClaseCarro

/**
*
*@authorRobsonFernandoGomes
*/
publicclassCarroimplementsVeiculo,Motor{
@Override
publicStringgetId(){

}
@Override
publicStringgetNome(){
}
@Override
publicStringgetFabricante(){
}
@Override
publicStringgetModelo(){

data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20

6/7

9/10/2015

EntendendointerfacesemJava

}
}

Concluso
Porfim,interfacenadamaisqueumaespciedecontratoderegrasqueumaclassesdeve
seguiremumdeterminadocontexto.ComoemJavanoexisteheranamltipla,ainterface
passaaserumaalternativa.
Esperoqueestecontedo,apesardebreve,possasertilprincipalmenteparaaquelesque
estoiniciandoosestudosemJavaeOrientaoaObjetos.
Ataprxima.

data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20

7/7