12.07.2015 Views

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

107 INTERFACES1 // Esta classe não compila porque ela não implementou o método saca ()2 class ContaCorrente implements Conta {3 public void <strong>de</strong>posita ( double valor ) {4 // implementacao5 }6 }Código Java 11.4: ContaCorrente.javaA primeira vantagem <strong>de</strong> utilizar uma interface é a padronização das assinaturas dos métodos oferecidospor um <strong>de</strong>terminado conjunto <strong>de</strong> classes. A segunda vantagem é garantir que <strong>de</strong>terminadasclasses implementem certos métodos.PolimorfismoSe uma classe implementa uma interface, po<strong>de</strong>mos aplicar a i<strong>de</strong>ia do polimorfismo assim comoquando aplicamos herança. Dessa forma, outra vantagem da utilização <strong>de</strong> interfaces é o ganho dopolimorfismo.Como exemplo, suponha que a classe ContaCorrente implemente a interface Conta. Po<strong>de</strong>mosguardar a referência <strong>de</strong> um objeto do tipo ContaCorrente em uma variável do tipo Conta.1 Conta c = new ContaCorrente ();Código Java 11.5: PolimorfismoAlém disso, po<strong>de</strong>mos passar uma variável do tipo ContaCorrente para um método que o parâmetroseja do tipo Conta.1 class GeradorDeExtrato {2 public void geraExtrato ( Conta c) {3 // implementação4 }5 }Código Java 11.6: GeradorDeExtrato.java1 GeradorDeExtrato g = new GeradorDeExtrato ();2 ContaCorrente c = new ContaCorrente ();3 g. geraExtrato (c);Código Java 11.7: Aproveitando o polimorfismoO método geraExtrato() po<strong>de</strong> ser utilizado para objetos criados a partir <strong>de</strong> classes que implementamdireta ou indiretamente a interface Conta.Interface e HerançaAs vantagens e <strong>de</strong>svantagens entre interface e herança, provavelmente, é um dos temas maisdiscutido nos blogs, fóruns e revistas que abordam <strong>de</strong>senvolvimento <strong>de</strong> software orientado a objetos.Muitas vezes, os <strong>de</strong>bates sobre este assunto se esten<strong>de</strong>m mais do que a própria importância <strong>de</strong>ssewww.<strong>k19</strong>.com.br 107

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!