Herencia en PHP

Herencia en PHP
Las tres características principales de la programación orientada a objetos incluyen encapsulación, herencia y polimorfismo. Al programar, es posible que deba usar cierto código varias veces, y el uso de la herencia reduce la repetición del código de reescritura manualmente reutilizando el código. La herencia es un método para crear una nueva clase heredando una clase base. El objeto de la nueva clase podrá acceder a todos los miembros de la clase de la nueva clase, así como a la clase base, a través de la herencia. De esta manera, el mismo código se puede reutilizar muchas veces escribiéndolo solo una vez. PHP usa el extender Palabra clave para la herencia. Este tutorial muestra cómo implementar la herencia utilizando el script PHP.

Sintaxis de herencia

La sintaxis de la herencia se muestra a continuación.

Clase NewClass extiende OldClass


Aquí, Nueva clase se llama el niño, derivado, o subclase; y clase vieja se llama el padre, base, o súperclase. La siguiente parte de este tutorial muestra algunos ejemplos de uso de herencias en PHP.

Ejemplo 1: Uso simple de la herencia

El siguiente script muestra un uso simple de la herencia en el script PHP. En el guión, Empleado es la clase principal que contiene dos variables de clase y la setData () El método se utiliza para inicializar las variables de clase. El Ejecutivo La clase es la clase infantil que se hereda de la Empleado clase usando el extender palabra clave. Contiene una variable de clase y un método nombrado mostrar detalles() para imprimir las variables de clase de las clases de padres e hijos. Después de crear el objeto de la clase infantil, los métodos de las clases de padres e hijos se llamarán utilizando el objeto de clase infantil.

// Clase principal
empleado de clase
// variables de clase principal
Nombre público $;
departamento público de $;
// Inicializar datos básicos
función pública setData ()

$ this-> name = "John Abraham";
$ this-> departamento = "hr";


// Clase infantil
La clase ejecutiva extiende a los empleados
// variable de clase infantil
público $ designación = "ejecutivo de marketing";
// Imprimir detalles del empleado
función pública showDetails ()

if ($ this-> nombre != "" && $ this-> designación != "" && $ this-> Departamento != "")

eco "Detalles sobre empleados:
";
Echo "Nombre:".$ this-> nombre."
";
Echo "Designación:".$ this-> designación."
";
echo "Departamento": ".$ this-> departamento."
";



// crear objeto la clase infantil
$ objemp = nuevo ejecutivo ();
// Llamar al método de clase principal
$ objemp-> setData ();
// Llamar al método de clase infantil
$ objemp-> showDetails ();
?>

Producción

La siguiente salida aparecerá después de ejecutar el script. Aquí, el nombre del empleado y los valores del departamento se imprimen desde la clase principal, y el valor de designación de empleados se imprime desde la clase infantil.

Ejemplo 2: herencia con método anular

La primordial del método ocurre cuando se declara un método con el mismo nombre tanto en la clase de los padres como en la niña. El siguiente script muestra la herencia con el método anular utilizando el script php. Aquí el mostrar detalles() El método se declara tanto en la clase madre como en la clase infantil. El objeto de la clase principal accederá a mostrar detalles() método de la clase principal, y el objeto de la clase infantil accederá a la mostrar detalles() Método de la clase infantil.

// Clase principal
empleado de clase
// variables de clase principal
Nombre público $;
departamento público de $;
// Inicializar datos
función __construct ()

$ this-> name = "Janifer Lopez";
$ this-> departamento = "ventas";

// Imprimir detalles del empleado
función pública showDetails ()

eco "Detalles del empleado: [de la clase principal]
";
Echo "Nombre:".$ this-> nombre."
";
echo "Departamento": ".$ this-> departamento."

";


// Clase infantil
La clase ejecutiva extiende a los empleados
// variable de clase infantil
público $ designación = "ejecutivo de ventas";
// Imprimir detalles del empleado
función pública showDetails ()

eco "Detalles del empleado: [de la clase infantil]
";
Echo "Nombre:".$ this-> nombre."
";
Echo "Designación:".$ this-> designación."
";
echo "Departamento": ".$ this-> departamento."
";


// Crear objeto de clase principal
$ objemployee = new Employee ();
// Llamar al método de clase principal
$ objemployee-> showDetails ();
// Crear objeto de clase infantil
$ obtexecutive = new Ejecution ();
// Llamar al método de clase infantil
$ obtexecutive-> showDetails ();
?>

Producción

La siguiente salida aparecerá después de ejecutar el script. Cuando el mostrar detalles() El método se llama con el objeto de la clase principal, mostrará la salida de la clase principal. Cuando el mostrar detalles() El método se llama con el objeto de la clase infantil, mostrará la salida de la clase infantil.

Ejemplo 3: Llame al constructor de padres dentro del constructor infantil

Cuando tanto el padre como la clase infantil contienen un método de constructor, la clase infantil puede llamar al constructor de la clase principal. El siguiente script muestra cómo llamar al constructor de la clase principal desde el constructor de la clase infantil. El Padre :: __ construct () La declaración se usa para llamar al constructor principal.

// Clase principal
empleado de clase
// variables de clase principal
Nombre público $;
departamento público de $;
// Inicializar datos
función __construct ($ nombre, $ departamento)

$ this-> name = $ name;
$ this-> departamento = $ departamento;


// Clase infantil
La clase ejecutiva extiende a los empleados
// variables de clase infantil
Pública $ designación;
público $ salario;
// Inicializar datos
función __construct ($ nombre, $ departamento, $ designación, $ salario)

// Llamar al constructor de clase principal
padre :: __construct ($ name, $ departamento);
$ this-> designación = $ designación;
$ this-> salario = $ salario;

// Imprimir detalles del empleado
función pública showDetails ()

eco "Detalles sobre empleados:
";
Echo "Nombre:".$ this-> nombre."
";
Echo "Designación:".$ this-> designación."
";
echo "Departamento": ".$ this-> departamento."
";
Echo "Salario: $".$ this-> salario."
";


// Crear objeto de clase infantil
$ obtexecutive = nuevo ejecutivo ('jafar iqbal', 'marketing', 'ejecutivo de marketing', 4500);
// Llamar al método de clase infantil
$ obtexecutive-> showDetails ();
?>

Producción

La siguiente salida aparecerá después de ejecutar el script. Aquí, el constructor de padres inicializa el nombre y el departamento del empleado, y la designación y el salario de los empleados son inicializados por el constructor infantil.

Ejemplo 4: Implementar la herencia jerárquica

El siguiente script muestra cómo implementar la herencia jerárquica en PHP. Aquí, clase 2 se crea por heredar clase 1, y Clase3 se crea por heredar clase 2. En este ejemplo, tres métodos se definen en tres clases. El Clase3 El objeto se crea para llamar a los métodos de todas las clases.

// Clase principal
clase clase1
función showmethod1 ()

echo "Es la clase principal
";


// Clase infantil
Class Class2 extiende Class1
función showmethod2 ()

Echo "Es la clase infantil
";


// Clase de nieto
Class Class3 extiende Class2
función showmethod3 ()

echo "Es la clase de nieto";


$ object = new Class3 ();
$ objeto-> showmethod1 ();
$ objeto-> showmethod2 ();
$ objeto-> showmethod3 ();
?>

Producción

La siguiente salida aparecerá después de ejecutar el script. Aquí, la primera línea de texto ha aparecido de clase 1, La segunda línea de texto ha aparecido de clase 2, y la tercera línea de texto ha aparecido de Clase3.

Tutorial de video

Conclusión

Este tutorial le mostró varios tipos diferentes de herencias utilizando el script PHP. Después de leer este artículo, debe comprender el concepto de herencia y sus usos básicos en el script PHP.