Após a definição de uma interface, uma ou mais classes podem implementá-la.
Para implementar uma interface, utilize a cláusula implements na definição da classe.
É necessário que a classe implemente todos os métodos requeridos pela interface.
A forma geral de uma classe que inclui a cláusula implements é:
class nomeclasse extends superclasse implements interface {
// corpo-classe
}
Para implementar mais de uma interface, as interfaces são separadas por vírgulas.
A cláusula extends é opcional na implementação de interfaces.
Os métodos que implementam uma interface devem ser declarados como public.
A assinatura do método implementador deve coincidir exatamente com a assinatura especificada na interface.
Exemplo de implementação da interface Series:
Neste exemplo, a classe ByTwos implementa a interface Series, gerando uma série de números que aumenta em dois a cada chamada do método getNext().
Os métodos getNext(), reset() e setStart() na classe ByTwos são declarados com o especificador de acesso public.
Isso é necessário porque, ao implementar um método definido por uma interface, ele deve ser declarado como public.
Todos os membros de uma interface são implicitamente public, portanto, a implementação na classe deve respeitar esse modificador de acesso.
Aqui está uma classe que demonstra ByTwos:
- É permitido e comum classes que implementam interfaces definirem membros adicionais.
A inclusão do método
getPrevious()
não exigiu alteração na interfaceSeries
.A flexibilidade de modificar implementações sem afetar a interface é uma das principais vantagens do uso de interfaces na programação orientada a objetos.
- A classe ByThrees também implementa a interface Series.
Classes abstratas:
Se uma classe incluir uma interface, mas não implementar todos os métodos definidos por ela, deve ser declarada como abstract.
Classes abstratas não podem ser instanciadas diretamente (ou seja, não podem ser criados objetos delas).
Elas podem ser usadas como superclasses abstratas, permitindo que subclasses forneçam a implementação completa dos métodos da interface.
Top comments (0)