DEV Community

Implementando interfaces

  • 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().

Image description

  • 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:

Image description

  • É permitido e comum classes que implementam interfaces definirem membros adicionais.

Image description

  • A inclusão do método getPrevious() não exigiu alteração na interface Series.

  • A flexibilidade de modificar implementações sem afetar a interface é uma das principais vantagens do uso de interfaces na programação orientada a objetos.

Image description

  • 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)