Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/04/2014, 04:20
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: cual es el sentido de usar las clase abstractas

Esto no es PHP, es teoría de la programación orientada a objetos.

Un método abstracto es un método declarado de una clase, pero no implementado, que obliga a todas las clases que la hereden, a implementarlo (meterle código para que haga algo). Muy parecido a las interfaces.

Toda clase que contenga un método abstracto, es una clase abstracta. Eso impide que se puedan crear isntancias de esa clase. Un $anima=new Animal() dará error, porque animal es una clase abstracta y es imposible instanciarla.

Cuando otra clase "extiende", hereda de una clase abstracta, está obligado a implementar todos los métodos abstractos de las clase padre (y también de los abuelos, bisabluelos, etc, según la jerarquía de herencias que hagas).

Y pro último, una clase abstracta puede que no tenga métodos abstractos; pero definir una clase como abstracta se hace para lo que ya dije antes, impedir crear instancias de esa clase (por lo que si quieres usarla, tendrás que declarar instancias de alguno de sus hijos).

Y "sentido" de uso tiene mucho, pero como todo, depende de la habilidad y soltura del programador. Hay quien hace maravillas con esta "herramienta" que proporciona el lenguaje, y otros que hacen llorar al niño jesus.