Classes Abstratas

Embora o ActionScript ainda não tenha recursos de classes e métodos abstratos, não custa não a gente procurar entender um pouquinho mais de Orientação a Objetos. De repente na próxima versão do AS a gente consegue criar classes que não sejam concretas e daí você já vai saber as razões e os motivos de usá-las.

Normalmente as pessoas comparam muito interfaces com classes abstratas, mas são coisas completamente distintas e com objetivos bem diferentes, por isso, ao contrário da maioria, não vou abordar as duas coisas juntas.

Características das classes abstratas:

  • Pode-se dizer que é uma classe incompleta.
  • Não pode ser instanciada (perfeitamente justificada pelo item acima).
  • Pode ou não ter métodos abstratos (tem quem diga que deve ter pelo menos um, caso contrário poderia ser uma classe concreta, mas isso é uma questão de ponto de vista e de quão a risca se deve seguir a teoria).
  • Uma classe que tenha um método abstrato deve ser obrigatoriamente declarada como abastrata, ou seja, não existe método abstrato fora de uma classe abstrata.
  • Pode ou não ter métodos concretos.
  • Quando uma classe concreta herdar uma classe abstrata todos os métodos abstratos devem ser implementados.
  • Uma classe abstrata pode herdar outra classe abstratas e os métodos abstratos só serão obrigatórios na primeira classe concreta da hierarquia.

Assim como com classes concretas e interfaces podemos utiizar delas também para realizar operações polimórficas.

As classes abstratas são bastante usadas como template, se quiser entender um pouquinho mais sobre isso, dá uma olhadinha aqui: Template Method.

Tags:

Leave a comment