Tutoriales PHP MYSQL programación web php base de datos mysql

\n"; } } } lecturas();

          


PHP - Las Clases

      

Autor: Carlos Carmona

Herencia de clases en PHP

Bueno, la herencia de clases consiste en clases compuestas por otras clases... imaginemos la clase tiburón y la clase atún, tienen muchas propiedades y métodos comunes, propiedades como aletas, cola, etc, y métodos comunes como nadar, sumergirse, etc... de este modo, podríamos hacer una clase llamada pez y poner en ella todas las propiedades y métodos comunes, y después crear las clases tiburón y atún que heredasen de pez. Es una forma de ahorrar código, sin embargo he de decir llegado a este punto, que no siempre es buena idea crear demasiadas clases con herencias muy complejas, ya que se pierde legibilidad, el código se vuelve tan abstracto que puede ser dificil de comprender y una tortura para futuros programadores que tengan que continuar con el desarrollo sin haber estado desde el principio. Aunque esto puede ser muy discutible por parte de los amantes empedernidos de la programación orientada a objetos.

La sintaxis en PHP para que una clase herede de otra es la siguiente:

  1. <?php
  2.  
  3. include_once("/articulos/tutoriales/php/ClasePadre.html");
  4.  
  5. class NombreClaseHijo extends NombreClasePadre {
  6.  
  7. var $propiedad_1;
  8. var $propiedad_2;
  9. //...
  10. var $propiedad_N;
  11.  
  12. function acción_1($param1, ..., $paramN) {
  13. //código
  14. }
  15.  
  16. //...
  17.  
  18. function acción_N($param1, ..., $paramN) {
  19. //código
  20. }
  21. }
  22.  
  23. ?>

En la declaración de la clase hijo, previamente, se llama a la clase padre, y mediante la sentencia extends indicamos que la clase hijo va a heredar de la clase padre.

Gráfico sobre la herencia de métodos y porpiedades de clases padres a hijas

Posteriormente, en nuestra aplicación PHP, ya no se llamará a la clase padre, solo llamaremos a la clase hijo, ya que esta a su vez llama a la clase padre.

Sobrescribir los valores de la clase padre

Podría darse el caso de que en una clase padre tegamos una propiedad y/o un método con unos valores, y sin embargo queremos que en una clase hija algunas propiedades y/o métodos que aparecen en la clase padre realicen acciones distintas o tengan valores distintos (dependiendo de si es un método o una propiedad respectivamenta). Es decir, queremos redefinir alguna propiedad y/o método de la clase padre. Para ello, simplemente en la clase hija volvemos a escribir esa propiedad dándole un valor distinto o ese método (función) realizando operaciones distintas; desde ese momento, cuando accedamos a la propiedad o método, siempre se ejecutará el especificado en la clase hija, y los definidos en la clase padre no serán accesibles desde la case hija.

Esto puede ser útil si tenemos una clase con una propiedad (por ejemplo) con valor 1, ya que siempre lo vamos a utilizar así, por lo menos como valor por defecto, pero sin embargo, en una de las muchas clases hijas que cuelgan de ella queremos que esa propiedad se inicialice a valor 2. En este caso lo correcto es escribir la propiedad en la clase padre con valor 1, y en la clase hija que queremos tenga un valor distinto, la volveremos a escribir con valor 2, de modo que en el resto de clases hijas seguirá teniendo valor 1.

Nota: En PHP4 y anteriores versiones no se pueden hacer herencias múltiples, es decir, que una clase herede de varias a la vez.

Scour Design ™ Todos los Derechos Reservados © Carlos Carmona Xhtml 1.1 Strict Válido!CSS Nivel 2 Válido! Nivel Triple-A de Conformidad con las Directrices de Accesibilidad Web (WAI)