Java é uma linguagem de programação de computador introduzido pela primeira vez em 1995 pela Sun Microsystems. Ambas as interfaces e classes abstratas são usadas em código Java quando vários sub-tipos da mesma classe precisa se comportar de forma diferente. Classes abstratas e interfaces funcionam de forma muito diferente e são usados de maneiras diferentes, embora haja algumas semelhanças entre eles. Idioma
Classes abstratas e interfaces permitem código diferente para ser usado . Por exemplo, uma classe abstrata pode conter classes concretas , enquanto que uma interface pode conter classes abstratas . Uma classe abstrata também é mais fluido do que uma interface e pode conter campos que não são estáticos ou final, enquanto uma interface não pode. Além disso, uma classe abstrata herda automaticamente uma classe de objeto , o que significa que irá incluir métodos como " clone () " e " equals () ", enquanto uma interface não pode incluir esses métodos.
Métodos implementados
Métodos de uma classe abstrata pode ser definida com uma variedade de parâmetros de visibilidade , incluindo o público, protegido , privado ou nenhum. Uma interface só pode ser visivelmente público. Isto significa que todos os membros de uma interface são públicos por padrão, enquanto membros de uma classe abstrata pode incluir membros não-públicos ou métodos.
Desempenho
de um modo geral , as interfaces de operar um pouco mais lento do que classes abstratas porque introduzem uma nova classe para cada método que é implementado , e isso pode levar algum tempo extra para uma interface para localizar o método correto em cada classe. Uma classe abstracta , por outro lado , pode aplicar um método para várias classes de uma só vez , e , assim, realiza mais rápido . No entanto , a maioria das JVMs ( Java Virtual Machines ) de 2011 de compensar a diferença , e essas diferenças de desempenho são mais dificilmente notado.
Use
Uma interface deve ser usada quando o script pede-lhe para fornecer implementação para todos os seus métodos. Interfaces pode construir todas as suas classes de volta a partir do zero , de forma sistemática . Classes abstratas deve ser usado quando você tem uma implementação parcial do seu script , mas não é totalmente completa. Deixe essas implementações incompletas como "abstrato" e permitir que um servidor para interpretá-los.