19th Ave New York, NY 95822, USA
+1 916-875-2235
+1 916-875-2235

Modificadores y herencia de clases PHP

Los modificadores de acceso son public, protected, private, final y abstract

Las clases, propiedades y métodos se definen mediante los modificadores public, protected, private, final o abstract seguido de una declaración de variable normal.

Modificador
Public Será posible utilizar esta propiedad o método en todo el script
Private Será posible utilizar esta propiedad o método sólo en la clase a la que pertenece
Protected Será posible utilizar esta propiedad o método sólo en la clase a la que pertenece, y en sus descendientes
Final No podrá ser sobreescrita por sus descendientes
Abstract Para ser usado, deberá heredarse primero

Public

En primer lugar creamos una clase Vehiculo. Esta clase tiene el taributo combustible.

Por defecto todas las propiedades y funciones son public, por lo que no es necesario especificar public. Con los métodos puedes no utilizar ninguna palabra y escribir directamente function.

Private

En este caso, utilizando el modificador private, no se podrá mostrar ni modificar el atibuto combustible. Para ello, es necesario utilizar los métodos public getters y setters. Con ellos, podremos acceder a las propiedades private.

En caso de que queramos modificar un valor private desde un objeto que a su vez es una instancia de otro, PHP creará una variable pública y otra privada.

Ahora hay dos variables creadas, lo cual puede resultar complicado de manejar, o por lo menos, lioso. Por eso, en estos casos, podremos utilizar el modificador protected.

Protected

Tanto las propiedades como los métodos a los que pongamos protected, podrán ser accesibles a través de la clase dónde se crean, pero también desde sus descendientes:

Final

Se establece así, que un método o clase no podrá ser sobreescrito por una clase hija.

Esto mismo ocurre si se quiere heredar la misma clase:

Abstract

Este modificador establece que la clase o método nunca podrá ser instanciada, sólo heredada.

Si se define un método abstract en una clase, la propia clase deberá ser abstract también.

Related Posts

Leave a reply