a Classe Abstrata

Uma classe abstrata é uma classe que é declarada como abstrata — que pode ou não incluir métodos abstratos. As classes abstratas não podem ser instanciadas, mas podem ser subclassificadas. Uma classe abstrata pode ter campos estáticos e métodos estáticos. Quando uma classe abstrata é subclassada, a subclasse geralmente fornece implementações para todos os métodos abstratos em sua classe-mãe. No entanto, se não o fizer, então a subclasse também deve ser declarada abstrata.,

Um método abstracto é um método que é declarado sem uma implementação (sem chaves e seguido por um ponto-e-vírgula), como este:

abstract void sum(int a, int b);

Considere a utilização de classes abstratas se alguma destas situações se aplicam à sua situação:

  1. Você deseja compartilhar código entre vários intimamente relacionados com as classes.
  2. você espera que as classes que estendem a sua classe abstrata tenham muitos métodos ou campos comuns ou exijam modificadores de acesso que não sejam públicos (como protegidos e privados).
  3. você deseja declarar campos não-estáticos ou não-finais., Isto permite definir métodos que podem acessar e modificar o estado do objeto ao qual pertencem.

Interface

uma interface é apenas a declaração de métodos de um objeto; não é a implementação. Em uma interface, definimos que tipo de operação um objeto pode realizar. Estas operações são definidas pelas classes que implementam a interface. Interfaces formam um contrato entre a classe e o mundo exterior, e este contrato é executado no tempo de construção pelo compilador.,

considere a utilização de interfaces se qualquer destas afirmações se aplicar à sua situação:

  1. você espera que classes independentes iria implementar a sua interface. Por exemplo, as interfaces comparáveis e Clonáveis são implementadas por muitas classes independentes.
  2. você quer especificar o comportamento de um determinado tipo de dados, mas não se preocupa com quem implementa o seu comportamento.
  3. você quer se aproveitar de várias heranças.,

publicado Originalmente em junho de 2016

Ler Mais

  • Quando (Não) Usar Java Classes Abstratas
  • Java: Interface Vs. A Classe abstrata
  • Como Escolher Entre a Interface e Classes Abstratas em Java