PHP - Duda sobre lo que se trata la abstraccion en POO (PHP)

   
Vista:
Imágen de perfil de Cristofer

Duda sobre lo que se trata la abstraccion en POO (PHP)

Publicado por Cristofer (4 intervenciones) el 08/01/2016 17:19:35
Hola, estoy ase poco aprendiendo POO en PHP y me surgió la duda sobre para que sirve realmente la abstracción... al crear una clase y agregarle un método abstracto ej:

1
2
3
4
abstract class miClase1()
{
    abstract protected function ejemplo();
}

Bien por lo que entiendo así se define un método abstracto... se supone que solo se declara pero no se define su funcionamiento interior... al crear otro objeto y heredarlo de esta clase abstracta seria algo como:

1
2
3
4
5
6
7
class miClase2 extends miClase1()
{
    protected function ejemplo()
    {
        return true;
    }
}

Bien tomando en cuenta esto mi duda es... ¿para lo único que sirve la abstracción es para obligar a una clase hija a contener un método especifico? es decir al heredar miClase2 de la clase abstracta necesito implementar una función protected llamada ejemplo... pero en que sentido esto es útil... es decir ¿no puedo obligarme a mi mismo como programador a escribir dicha función y así evitar tener que crear una clase abstracta ?

Leí un ejemplo en el que me decían que "Animales" seria considerado un objeto abstracto (por que no existe en la realidad) y que "Perro" seria un objeto propiamente tal que se puede instanciar por que es algo real, entonces digamos que "Animales" tiene un método nacer... evidentemente no podemos implementar su funcionalidad directamente ya que algunos animales son ovíparos y otros vivíparos pero me sigue dando la misma duda.. yo podría implementar la función nacer en un objeto perro y en un objeto gallina sin necesidad de heredar de un método abstracto ... en el fondo lo que digo es que lo encuentro de mas...

Bueno eso seria mas que nada mi mata la duda ya que todavía no se me ocurre para que carajo sirve la dichosa abstracción...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder