erickfm8:
Completando
Uma classe extends a classe abstrata quando vai utilizar todos (ou quase todos) recursos que ela oferece “quando É UM objeto do tipo”.
Imagine que uma classe abstrata tem uns 10 atributos e uns 10 metodos e voce precisa usar apenas 2 desses metodos, se você for extender a ela vai ficar muita informação que você não necessita isso quebra um dos conceitos da Orientação a Objetos que é a coesão (que uma classe deve especifica ao seu objetivo), neste caso você cria uma interface “contrato” com apenas esses dois metodos e você mantem a coesão da sua classe.
Não é bem assim o conceito de interface não. Se vc tiver dois métodos em uma interface, a classe q implementar esta, terá que obrigatoriamente escrever o código destes métodos.
Por Exemplo (sei q não se usa isso, mas é o q eu consegui pensar agora pra exemplificar) :
Uma interface BancoDeDados q tem dois métodos, salvar e excluir. Como é uma interface estes métodos são vazios, sem código algum.
Uma Classe q implementa esta interface chamada BancoDeDadosOracleImpl, os códigos dos dois métodos são feitos de acordo com o jeito q o oracle funciona.
Outra Classe q implementa a interface BancoDeDados chamada BancoDeDadosDB2Impl, com os códigos dos dois métodos utilizando este banco de dados.
Isso será uzado em uma classe posterior.
Por exemplo uma aplicaçãozinha em desktop q inclui e exclui um cliente.
se vc colocar assim:
BancoDeDados bd = new BancoDeDadosOracleImpl();
bd.salvar(cliente);
Aí caso vc não queira mais usar o oracle, queira usar o DB2. Fácil, só mudar de implementação:
BancoDeDados bd = new BancoDeDadosDB2Impl();
bd.salvar(cliente);
O código de sua aplicação desktop continua o mesmo sem mudar nada, só q agora é feito em um banco de dados DB2.
Isso é uma interface. É pra isso q serve.
Classes abstratas não podem ser instanciadas, então quem extender desta será do tipo dela e fará tudo o q ela faria e mais coisas ainda.
É um conceito de OO para reduzir a quantidade de código.
Uma classe abstrata seria criada para que códigos em comum e várias classes possam ser reaproveitadas.