3
respostas

Classe Abstrata e Interface

1) Qual a diferença entre a classe abstrata e interface?
2) Quando usar uma ou  outra?

Obrigado!

3 respostas

Basicamente a classe abstrata pode conter todos os métodos concretos ou nao, mas por ser abstrata, não poderá ser instanciada, fazendo com que para que seus métodos possam ser invocados, ela precise ser estendida por outra classe concreta. Já a interface é como se fosse um comportamento, apenas com métodos que deverão ser criados na classe que os implementa.

Usamos interface quando queremos que a classe que a implementa tenha todos os métodos da interface. Isso ajuda a não esquece qualquer método que levaria a uma falha no sistema.

Olá Gustavo,

Poderia citar exemplos práticos que usam classe abstrata e interface?

Obrigado.

Tem um exemplo no proprio curso da Alura, no caso das contas.

É criada uma classe abstrata Conta, com todos os atributos e métodos que contem em uma conta, e logo depois são feitas 2 classes (Conta Corrente e Conta Poupança). Ou seja, Conta Corrente e Conta Poupança SÃO UMA conta.

Ambas estendem de Conta e nao precisam repetir o codigo de Conta, apenas adicionando metodos que seram específicos de cada classe ou sobrescrevendo os necessarios.

Ja na interface, é dado um exemplo de uma interface chamada Tributavel onde todas as classes que implementassem tal interface pagaria algum tributo sob alguma ação. As interfaces podem ser representadas como um "comportamento".