buscar
Espanol flagIngles flag






Tiempo estimado de lectura 1:27 min. rellotge
Clases y Métodos abstractos en PHP 5


Como su mismo nombre lo dice, las clases abstractas se utilizan en la OOP para especificar objetos abstractos. Solo sirven para ser heredadas por otras clases o para usarlas sin instanciar es decir son aquellas que forzosamente se ha de derivar si se desea que se puedan crear objetos de la misma o acceder a sus miembros estáticos.

Cuando una clase contiene un método abstracto tiene que declararse abstracta. No obstante, no todos los métodos de una clase abstracta tienen que ser abstractos.

	abstract class Number
	{
		private $value;
		abstract public function value();
		public function reset()
		{
			$this->value = NULL;
		}

	}

	class Integer extends Number
	{
		private $value;
		public function value()
		{
			return (int) $this->value;
		}
	}

	$num = new Integer; /* Bien */
	$num2 = new Number; /* Mal */

Hemos creado una clase abstracta, Number que se extendiendo por la clase Integer. Como hemos declarado la clase Number como abstracta, no podemos crear una instancia de ella. Si miramos a la clase Number, podremos comprobar que se define 2 funciones: value() y resert(). En una clase abstracta, no es necesario proporcionar ningún código para métodos, aunque podemos incluir si lo deseamos. En el caso de la clase Number, como value() es algo específico a un tipo determinado de número, se deja para que lo implante la clase hija.

Para forzar este comportamiento en un código de escritura de desarrollador, la palabra clave abstract utilizada para identificarlo tiene simplemente un marcador de posición en la clase Number, algo que no obstante, no es cierto para el método reset(), que es consistente para cualquier tipo de número específico.

Las clases abstractas pueden extenderse sin implantar todos los métodos abstractos definidos dentro. Es decir, una clase hija puede también declararse como abstracta si no implanta todos los métodos abstractos de su padre(o padres).

Por tu preferencia puedes ser el primero siempre


©2008 CalinSoft. El contenido de este weblog está bajo licencia Creative Commons (Reconocimiento - Compartir igual)

.

Entradas Relacionadas:


- [Fuente Original]








...por Redacción


Patrocinador



Otros Reportajes:


Los más comentados:




Publicidad




Patrocinador




Publicidad



En colaboración:
Fox   National Geographic Channel   Feelnoise   Foxlife   Guinness World Records   Phaidon   Blume   Editorial Planeta

| PortalMundos.com Internacional |
fltx Europa: España fltx América del Norte: México, US en español fltx América Central: Costa Rica, Cuba, El Salvador, Guatemala, Honduras, Nicaragua, Panamá, Puerto Rico, República Dominicana fltx América del Sur: Argentina, Bolivia, Chile, Colombia, Ecuador, Paraguay, Perú, Uruguay, Venezuela

PortalMundos Factory, S.L. | 2000 - 2012 | Hosting Profesional por :: isyourhost.com ::