26.08.2014 Views

C# e Orientação a Objetos

Create successful ePaper yourself

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

113 INTERFACES<br />

1 class AutenticadorDeUsuario<br />

2 {<br />

3 public bool Autentica (??? u)<br />

4 {<br />

5 // implementação<br />

6 }<br />

7 }<br />

Código <strong>C#</strong> 11.8: AutenticadorDeUsuario.cs<br />

De acordo com as árvores de herança, não há polimorfismo entre objetos da classe Gerente e da<br />

classe Empresa. Para obter polimorfismo entre os objetos dessas duas classes somente com herança,<br />

deveríamos colocá-las na mesma árvore de herança. Mas, isso não faz sentido pois uma empresa<br />

não é um funcionário e o gerente não é cliente. Neste caso, a solução é utilizar interfaces para obter<br />

o polimorfismo entre desejado.<br />

Figura 11.3: Obtendo mais polimorfismo<br />

Agora, conseguimos definir o que o método Autentica() deve receber como parâmetro para trabalhar<br />

tanto com gerentes quanto com empresas. Ele deve receber um parâmetro do tipo IUsuario.<br />

1 class AutenticadorDeUsuario<br />

2 {<br />

3 public bool Autentica ( IUsuario u)<br />

4 {<br />

5 // implementação<br />

6 }<br />

7 }<br />

Código <strong>C#</strong> 11.9: AutenticadorDeUsuario.cs<br />

Exercícios de Fixação<br />

1 Crie um projeto no Microsoft Visual <strong>C#</strong> Express chamado Interfaces.<br />

www.facebook.com/k19treinamentos 113

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

Saved successfully!

Ooh no, something went wrong!