Resumo

Nesse módulo vimos dois conceitos muito importantes: interface e classes abstract. Uma interface é um tipo, da mesma forma que uma classe, mas abstrata e não pode ser instanciada (chamando new mais o construtor). Uma interface descreve um conjunto de assinaturas de métodos, sem implementação, que devem ser implementados em todas as classes que implementam essa interface. É como se fosse um contrato ou uma especificação dos métodos mínimos que uma classe deve ter para receber um determinado status.

A utilidade do conceito de interface reside no reagrupamento de diversas classes, de forma que cada uma implementa um conjunto comum de métodos, sob um mesmo tipo. Uma interface possui as seguintes características:

As classes abstratas são classes que não possuem implementação para pelo menos um de seus métodos. Para declarar uma classe ou um método abstrato utilizamos a palavra-chave abstract. Uma classe abstrata não pode ser instanciada.

As classes filhas de uma classe abstrata herdarão todos os atributos e métodos implementados e poderão ou não implementar os métodos abstratos. Caso implementem todos os métodos abstratos então poderão ser instanciadas normalmente. Caso não implementem, então serão por sua vez também classes abstratas. Podemos considerar que as classes abstratas trazem a vantagem da herança de códigos de implementação, com a flexibilidade dos métodos abstratos que podem ou não ser implementados pelas demais classes filhas.

Por fim, apresentamos a descrição e uso de classes genéricas. As classes genéricas necessitam de um parâmetro adicional com o tipo de dado a ser processado pela classe. As classes genéricas mais usadas são aquelas que envolvem as coleções de dados e seus processos de pesquisa e ordenamento. Ilustramos o uso das classes genéricas com um exemplo completo de ordenamento de um array de funcionários pelo número da matrícula.

Copyright © 2014 AIEC.