Interface Java
Interface é uma classe com "extends"? No meu Eclipse não para identificar, pois no icone da classe não possui o "i".
Felipe Moreira
Curtidas 0
Respostas
Felipe Moreira
07/10/2015
Alguem.
GOSTEI 0
Janaina Mendes
07/10/2015
Olha o que encontrei, uma boa resposta, não é minha.
1
down
Interface não é uma classe. Existem algumas similaridades entre classes abstratas e interfaces, mas também existem diferenças. Vejamos:
[Similaridades]
Interfaces e classes abstratas não podem ser instanciadas.
Para que possamos ter instâncias desses tipos, devemos criar uma nova classe que estenda a classe abstrata ou implemente a interface.
[Diferenças]
Classes abstratas podem ter atributos que serão definidos para cada instância de subclasse e que são suscetíveis a alterações por parte das classes filhas de acordo com o modificador de acesso. Enquanto isso, atributos declarados em interfaces são implicitamente static e final (isto é, um por classe e não podem ser alterados).
Interfaces não podem ter a implementação de métodos; classes abstratas podem ter.
Dado que em classes abstratas podemos ter algumas implementações de métodos, as classes filhas podem fazer uso desses métodos com a palavra-chave super para os comportamentos que são comuns entre diferentes classes filhas. Em interfaces, isso não existe porque cada classe que implementa a interface define seu próprio comportamento na implementação.
Pode ser que existam outras diferenças, mas no momento é o que me lembro.
1
down
Interface não é uma classe. Existem algumas similaridades entre classes abstratas e interfaces, mas também existem diferenças. Vejamos:
[Similaridades]
Interfaces e classes abstratas não podem ser instanciadas.
Para que possamos ter instâncias desses tipos, devemos criar uma nova classe que estenda a classe abstrata ou implemente a interface.
[Diferenças]
Classes abstratas podem ter atributos que serão definidos para cada instância de subclasse e que são suscetíveis a alterações por parte das classes filhas de acordo com o modificador de acesso. Enquanto isso, atributos declarados em interfaces são implicitamente static e final (isto é, um por classe e não podem ser alterados).
Interfaces não podem ter a implementação de métodos; classes abstratas podem ter.
Dado que em classes abstratas podemos ter algumas implementações de métodos, as classes filhas podem fazer uso desses métodos com a palavra-chave super para os comportamentos que são comuns entre diferentes classes filhas. Em interfaces, isso não existe porque cada classe que implementa a interface define seu próprio comportamento na implementação.
Pode ser que existam outras diferenças, mas no momento é o que me lembro.
GOSTEI 0
Fernando C
07/10/2015
outra diferença importante: uma classe não pode herdar de várias classes
(não há, portanto, "herança multipla" em java).
Mas pode herdar de várias interfaces.
(não há, portanto, "herança multipla" em java).
Mas pode herdar de várias interfaces.
GOSTEI 0
Felipe Moreira
07/10/2015
Por isso que na maioria ou em todas as interfaces existem o implements. Uma luz, obrigado Janaina e Fernando pelo grande help.
GOSTEI 0
Janaina Mendes
07/10/2015
Alem das leituras, vê como funciona ajuda bastante a entender.
GOSTEI 0
Felipe Moreira
07/10/2015
Alem das leituras, vê como funciona ajuda bastante a entender.
Fazendo isso, obrigado.
GOSTEI 0
Janaina Mendes
07/10/2015
De nada Felipe.
GOSTEI 0