Ejemplo de utilización de una clase abstracta
Publicado por xve (6935 intervenciones) el 07/04/2014 07:45:11
Hola, voy a intentar explicar con un ejemplo la utilización de una clase abstracta... (es una copia de un mensajes que he puesto en el foro de Java, pero que funciona igual en PHP)
Imaginemos que tenemos una tienda de ropa, donde toda la ropa tiene varias cosas en común, como por ejemplo la talla (38, 40, ...) y el tipo de prenda (pantalón, jersey, ...)
Podrías tener una clase abstracta que fuera ropa en la cual defines dos métodos abstractos los cuales no incluyen una codificación, sino que simplemente se declaran, dejando para las clases que hereden la tarea de codificarlos.
En este ejemplo la clase abstracta ropa tendrá dos métodos abstractos denominados talla() y prenda(), pero no se especificará el código fuente de estos métodos (por eso son abstractos). Las clases que hereden de ropa serán las encargadas de definir un código para los métodos definidos como abstractos en la clase padre. Así, cada clase que herede de la clase ropa, deberá especificar el mecanismo concreto y específico para los métodos talla() y prenda()
El ejemplo seria algo así:
Cabe decir, que una clase abstracta no se puede instanciar directamente, siempre tiene que ser heredada.
Espero que sirva de ayuda...
Imaginemos que tenemos una tienda de ropa, donde toda la ropa tiene varias cosas en común, como por ejemplo la talla (38, 40, ...) y el tipo de prenda (pantalón, jersey, ...)
Podrías tener una clase abstracta que fuera ropa en la cual defines dos métodos abstractos los cuales no incluyen una codificación, sino que simplemente se declaran, dejando para las clases que hereden la tarea de codificarlos.
En este ejemplo la clase abstracta ropa tendrá dos métodos abstractos denominados talla() y prenda(), pero no se especificará el código fuente de estos métodos (por eso son abstractos). Las clases que hereden de ropa serán las encargadas de definir un código para los métodos definidos como abstractos en la clase padre. Así, cada clase que herede de la clase ropa, deberá especificar el mecanismo concreto y específico para los métodos talla() y prenda()
El ejemplo seria algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
abstract class Ropa
{
// Forzando la extensión de clase para definir este método
abstract protected function Talla();
abstract protected function Prenda();
...
}
class RopaHombre extends Ropa
{
public function Talla()
{
...
}
public function Prenda()
{
...
}
}
class RopaMujer extends Ropa
{
public function Talla()
{
...
}
public function Prenda()
{
...
}
}
?>
Cabe decir, que una clase abstracta no se puede instanciar directamente, siempre tiene que ser heredada.
Espero que sirva de ayuda...
Valora esta pregunta


0