Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/04/2014, 13:34
Avatar de jor_0203
jor_0203
 
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cual es el sentido de usar las clase abstractas

Cita:
Iniciado por marlanga Ver Mensaje
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.

que interesante comentario, pero no entendí bien esto, me dices que si tengo una clase abstracta la debo llamar en la otra clase con todos sus métodos, si no da un error, eso es correcto



una pregunta mas
cual es la diferencia entre implementado y declarado, que no es lo mismo

Última edición por jor_0203; 05/04/2014 a las 15:41