terça-feira, 17 de maio de 2011

Um Pouco Sobre Abstração e Finalização de Classes Final

Boa noite pessoal,
bom esse é o ultimo post da série Abstração e Finalização de Classes, você pode conferir os dois primeiros posts clicando nos links abaixo:

Pt 1.
http://javeiros.blogspot.com/2011/05/um-pouco-sobre-abstracao-e-finalizacao.html
Pt 2.
http://javeiros.blogspot.com/2011/05/um-pouco-sobre-abstracao-e-finalizacao_17.html

E nesse post vou dar uma conclusão sobre os dois assuntos.

Uma breve revisão:

Classes Abstratas:
Vulgo (Abstract Classes) são as classes que tem o comportamento pré definido porém não completamente definido, e que para ser utilizada deve ser estendida por alguma outra classe afim de especificar os métodos pré definidos na própria definição. Muito utilizada para abstrair modelos genéricos do mundo real tal como Carros pode ser abstrata para CarrosEsporte.

Classes Finalizadas:
Vulgo (Final Classes) são as classes que já tem o comportamento definido, e que não pode ser modificado de maneira nenhuma ou seja não posso estender uma classe final pois o compilador entende que a implementação da classe já foi definida e que não pode ser mudada. Muito utilizada para abstrair modelos concretos do mundo real tal como um carro da Marca Eclipse pode ser uma classe finalizada com os métodos e propriedades definidos.

Para mais detalhes sobre os dois tipos de classes visite os dois links marcados no começo do post.

Considerações Finais:

Como vimos Abstração e Finalização são duas pontas diferentes do modelo orientado a objetos, um que abstrai o modelo e um que especifica o modelo (respectivamente falando) ou seja não podemos em hipotese nenhuma utilizar os dois juntos em uma mesma classe, pois se formos ver essa restrição tem sentido por exemplo:

public abstract final class Carro{
    public void acelera(); 
}

Se formos pensar bem, vamos ver que não tem sentido mesmo, já que a classe abstrata Carro citada no exemplo é abstrata e não pode ser instanciada e deve ser entendida, e uma classe finalizada acabaria com esse sentido pois tem a necessidade de ser instanciada e não pode ser estendida. Não sei se expliquei com as melhores palavras porém gostaria que os meus leitores fizessem um teste na IDE favorita e vejam o resultado pelos próprios olhos.

Bom espero ter ajudado a tirar algumas dúvidas, caso meus leitores vejam algum erro de sintaxe, lógica, ou de português por favor comentem, criticas construtivas são bem vindas.
Deixem o seu comentário.

Nenhum comentário:

Postar um comentário