Interfaces
O Java também suporta interfaces — coleções de métodos relacionados que normalmente permitem informar aos objetos o que
fazer, mas não como fazer (veremos uma exceção a isso no Java SE 8). Na analogia do carro, uma interface das capacidades “básicas
de dirigir” consistindo em um volante, um pedal de acelerador e um pedal de freio permitiria que um motorista informasse ao carro
o que fazer. Depois que você sabe como usar essa interface para virar, acelerar e frear, você pode dirigir muitos tipos de carro, embora
os fabricantes possam implementar esses sistemas de forma diferente.
Uma classe implementa zero ou mais interfaces — cada uma das quais pode ter um ou mais métodos —, assim como um carro
implementa interfaces separadas para as funções básicas de dirigir, controlar o rádio, controlar os sistemas de aquecimento, ar-condicionado
e afins. Da mesma forma que os fabricantes de automóveis implementam os recursos de forma distinta, classes podem
implementar métodos de uma interface de maneira diferente. Por exemplo, um sistema de software pode incluir uma interface de
“backup” que ofereça os métodos save e restore. As classes podem implementar esses métodos de modo diferente, dependendo dos
tipos de formato em que é feito o backup, como programas, textos, áudios, vídeos etc., além dos tipos de dispositivo em que esses
itens serão armazenados.
Java Como Programar 10ed - Deitel