MuniManantay

MuniManantay

Municipalidad de Manantay

Reaching in to Heaven

Reaching in to Heaven

Artistic Expression

MayaSpace

MayaSpace

Baby Patron | Web Personal

Abogado Garza

Abogado Garza

Lawyer Web Page

Sep
08

Clases y Métodos abstractos en PHP 5

Escrito por Carlos Montalvo hace 1 año y 6 meses

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).

Categorizado: Desarrollo Web
Etiquetado: | | | | |

Comparte esta noticia:

Articulos Relacionados

4 Valiente(s) Opinaron, falta el tuyo comenta


    1

    Si quiero que una clase no sea instanciable puedo anteponerle ABSTRACT y ya ? esta mal conceptualmente ? me han dicho que esta mal pero no me convece. Gracias!


    2

    Oye… uso XP y no Linux como dice WP :D


    3

    @Pablo: Las clases abstractas son para especificar objetos abstractos, ahora me dices que quieres anteponer a una clase la palabra abstract para no instanciarla la pregunta seria por que no quieres instanciarla que funcion tendrian.

    Pero de echo si la vas a usar solo para heredar entonces no seria abstracta?


    Por lisandro el Feb 26, 2009 Responder este comentario
    4

    Del manual de php (siempre la mejor fuente para estas cosas)
    “Cuando se hereda desde una clase abstracta, todos los metodos marcados como abstractos en la declaración de la clase padre, deben de ser definidos por la clase hijo;”,


1 Sitio(s) que enlazan a esta noticia

Danos tu opinion sobre esta noticia.

CalinSoft se reserva el derecho de eliminar o editar todo comentario que considere ofensivo o difamatorio. Debatir, criticar NO ES INSULTAR.