Interfaces

6 respostas
L

Gente, tenho estudado java há um tempo e ainda fico intrigado com essa dúvida.

PRA QUE SERVE UMA INTERFACE?

Qual o meu real ganho em criar uma interface para uma classe?

Eu sei, já ouvi muito sobre a história dos contratos, obrigatório implementar todos os métodos da interface e tal mas pq utilizá-las?

Abraços e me ajudem sençao não vou conseguir dormir mais

ahhahahahaha

6 Respostas

S

Olá lcm4693,
já que você já sabe a teoria de interface… que é uma classe 100% abstrata, só aceitam constantes na declaração de atributos, que seus métodos são implicitamente públicos e abstratos, só pode ter métodos abstratos…
Vamos lá no que interessa…

Uma interface serve para fornecer características comuns a classes totalmente diferentes, além de solucionar o problema da herança múltipla.8O

As interfaces podem ser implementadas por qualquer classe, de qualquer árvore de herança.

Por exemplo:
Você pode querer que tanto a classe Carro, quanto a classe Amendoin tenham o mesmo comportamento, mas elas não compartilham nenhum relacionamento de herança. Se você fizer Carro e Amendoin implementarem a interface Inflamavel, você estará dizendo que as duas classes são “coisas Inflamáveis”.

Espero que durma mais tranquilo. Hehe…

Um abraço!

L

Seguinte,

No caso se usa a interface para diferente implementações, certo? Um mesmo método implementado de uma forma em uma classe e implementado de outra forma em outra (esqueci o nome disso é OVERRIDE?).

A classe abstrata só é usada quando se deseja que as classes filhas herdem ao menos um método concreto, já que a classe abstrata possui tantos métodos concretos quanto abstratos. Pq se só tiver métodos abstratos seria a mesma função que uma interface, certo?

Estou errado quanto as minhas definições?

S

Olá lcm4693,
já que você tocou no assunto Classes Abstratas…

Não usamos classes abstratas

quando se deseja que as classes filhas herdem ao menos um método concreto

, pois podemos criar uma classe abstrato sem nenhum método.

A regra que você quiz dizer é a seguinte: fica a cargo da primeira classe concreta que extends uma classe Abstract, sobrescrever seus métodos abstratos.

De maneira teórica usamos classes abstratas para criarmos uma hierarquia coerente do sistema que está sendo analisado.

De maneira prática, usamos classes abstratas para forçar os programadores a criar subclasses. Especificando certos métodos como abstratos, você evita o problema de introduzir métodos default inúteis que outros podem herdar por acidente.

Classes abstratas diferem de interfaces de maneira clara: podem ter variáveis de instância e podem ter métodos concretos.

Um abraço!

L

Acho que entendi um pouco mais… mas ainda possuo dúvidas

Vou ficar mais um tempo acordado…

Vou pesquisar mais sobre o assunto

S

Olá lcm4693,
dê mais uma lida nas regras de classes abstratas e interfaces e caso haja novas dúvidas, poste-as.

Bons estudos!

L

Valeu cara…

Vou estudar isso mesmo

Obrigado pela ajuda

Criado 25 de agosto de 2007
Ultima resposta 29 de ago. de 2007
Respostas 6
Participantes 2