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