Foros del Web » Programando para Internet » PHP »

cual es el sentido de usar las clase abstractas

Estas en el tema de cual es el sentido de usar las clase abstractas en el foro de PHP en Foros del Web. 1-¿cual es el sentido de usar las clase abstractas es decir da lo mismo solo instaciar al método nacer() o hay algo que al usar ...
  #1 (permalink)  
Antiguo 05/04/2014, 03:06
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
cual es el sentido de usar las clase abstractas

1-¿cual es el sentido de usar las clase abstractas
es decir da lo mismo solo instaciar al método nacer()
o hay algo que al usar la palabra extends obliga a realizar
la clase ?
2-¿cual es el uso correcto o como debo entender el uso de la clase abstracta?

3-Me podían explicar esto de las clases abstractas "Si queremos que las subclases implementen comportamientos obligatoriamente podemos definir métodos abstractos" ¿es decir como podemos obligar ? .

abstract class animales
{
abstract function nacer();
}


class mamiferos extends animales
{
public function nacer()
{
echo "los mamiferos nacen del parto de la madre";
}
}

Última edición por jor_0203; 05/04/2014 a las 03:13
  #2 (permalink)  
Antiguo 05/04/2014, 04:20
Avatar de 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.
  #3 (permalink)  
Antiguo 05/04/2014, 13:34
Avatar de 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

Etiquetas: clase, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:02.