Uma classe abstrata é aquela que contém pelo menos um
método abstrato. Um método abstrato é um método que não
possui implementação definida naquela classe. Não podemos criar nenhum objeto da
classe abstrata. Portanto, a classe abstrata deve ser derivada por
uma subclasse que define todos os métodos abstratos da superclasse.
Se a subclasse não definir nenhum método abstrato da
superclasse, então essa subclasse automaticamente se torna a
classe abstrata. Quando a subclasse define todos os métodos abstratos da
superclasse, então podemos criar o objeto da subclasse e
acessar os outros métodos da superclasse abstrata.
Uma interface é uma classe que possui todos os métodos como
métodos abstratos. Todas as variáveis de instância de uma interface devem ser
declaradas como final e estáticas. Agora podemos implementar essa interface
em outra classe que deve definir todos os métodos da
interface. Agora crie o objeto da classe que implementou a
interface.
As interfaces são usadas quando queremos que os usuários utilizem os
métodos especificados apenas. As classes abstratas são utilizadas na herança onde
não é necessário que a classe defina nenhum método que deve
ser definido nas subclasses.
Por favor, deixe um comentário sobre a resposta anterior. Há muita informação sobre
classe abstrata e interface, então não pude escrever tudo. Acredito que isso deve esclarecer suas dúvidas.
Saudações,
Parvez