interface - interface é classe?
Perguntas � interface � interface é classe?
interface é classe?
Hoje discutindo com uns colegas sobre UML e surgiu a seguinte questão: Interface é uma classe?
Essa questão veio pois comentei que toda super classe tem um tendência muito grande de ser abstrata, e que toda classe abstrata é uma super classe.
Dito essa ultima frase, meu colega disse que não é verdade, pois interface "é um tipo de classe abstrata" e que ela não é super classe, pois não pode ser estendida e sim implementada.
Procurei em vários lugares e não encontrei nada falando disso.
Então, afinal, Interface é uma classe? (abstrata ou não).
--P.S. No Java 8 é possível que os métodos das interfaces tenham corpo, mas é uma peculiaridade. Não estávamos discutindo sobre a linguagem JAVA, e sim sobre Diagrama de Classes. Essa questão surgiu pois no programa que usamos (astah) é preciso criar uma classe e então adicionar o esteriótipo <> para demonstrar uma interface.
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.
Passando por aqui apenas para parabenizar pela boa resposta!
— Joao Paulo Vasconcelos 23 de set de 2015
— felipemartinsss 23 de set de 2015
Não é a resposta que estava procurando? Procure outras perguntas com as tags interface uml ou faça a sua própria pergunta.