La herencia múltiple es la propiedad de los lenguajes de programación orientada a objetos en los que la clase secundaria o la subclase pueden heredar las propiedades de las múltiples clases principales o superclases.
PHP no admite la herencia múltiple, pero al usar Interfaces en PHP o al usar Rasgos en PHP en lugar de clases, podemos implementarlo.
Rasgos (uso de clase junto con rasgos): el rasgo es un tipo de clase que permite la herencia múltiple. Las clases, las clases de casos, los objetos y los rasgos no pueden extender más de una clase, pero pueden extender múltiples rasgos al mismo tiempo.
Sintaxis:
class child_class_name extends parent_class_name { use trait_name; ... ... child_class functions }
Ejemplo:
<?php // Class Geeks class Geeks { public function sayhello() { echo "Hello"; } } // Trait forGeeks trait forGeeks { public function sayfor() { echo " Geeks"; } } class Sample extends Geeks { use forGeeks; public function geeksforgeeks() { echo "\nGeeksforGeeks"; } } $test = new Sample(); $test->sayhello(); $test->sayfor(); $test->geeksforgeeks(); ?>
Hello Geeks GeeksforGeeks
En el programa anterior, se han utilizado «rasgos» junto con la clase principal. Hay una «clase» llamada «Geeks» que contiene la función sayhello() y un «rasgo» llamado «forGeeks» que contiene la función geeksforgeeks() y hay una clase secundaria llamada «Sample» y estamos creando el objeto de esta clase llamado » test” y usándolo estamos invocando todas las funciones de una clase y un rasgo.
Rasgos (Uso de Múltiples Rasgos): Se pueden insertar Múltiples Rasgos en una clase enumerándolos en la declaración de uso, separados por comas.
Sintaxis:
class child_class_name { use trait_name; ... ... child_class functions }
Ejemplo:
<?php // trait Geeks trait Geeks { public function sayhello() { echo "Hello"; } } // trait forGeeks trait forGeeks { public function sayfor() { echo " Geeks"; } } class Sample { use Geeks; use forGeeks; public function geeksforgeeks() { echo "\nGeeksforGeeks"; } } $test = new Sample(); $test->sayhello(); $test->sayfor(); $test->geeksforgeeks(); ?>
Hello Geeks GeeksforGeeks
En el programa anterior se han utilizado «rasgos». Hay dos rasgos llamados «Geeks» que contienen la función sayhello() y «forGeeks» que contiene la función geeksforgeeks() respectivamente y hay una clase secundaria «Sample» y estamos creando el objeto de esta clase llamado «test» y usándolo estamos invocando todas las funciones de los rasgos.
Interfaz (usando la clase junto con la interfaz):
Sintaxis:
class child_class_name extends parent_class_name implements interface_name1, ...
Ejemplo:
<?php class A { public function insideA() { echo "I am in class A"; } } interface B { public function insideB(); } class Multiple extends A implements B { function insideB() { echo "\nI am in interface"; } public function insidemultiple() { echo "\nI am in inherited class"; } } $geeks = new multiple(); $geeks->insideA(); $geeks->insideB(); $geeks->insidemultiple(); ?>
I am in class A I am in interface I am in inherited class
En el programa anterior, la interfaz «B» se ha utilizado junto con la clase «A» para implementar la herencia múltiple. El punto importante a recordar es que no puede definir la función dentro de la interfaz, debe definirse dentro de la clase secundaria «Múltiple». Estamos invocando todas las funciones usando el objeto de clase secundaria (Múltiple) llamado «geeks».
Interfaz (usando interfaz múltiple):
Sintaxis:
class child_class_name implements interface_name1, interface_name2, ...
Ejemplo:
<?php interface C { public function insideC(); } interface B { public function insideB(); } class Multiple implements B, C { // Function of the interface B function insideB() { echo "\nI am in interface B"; } // Function of the interface C function insideC() { echo "\nI am in interface C"; } public function insidemultiple() { echo "\nI am in inherited class"; } } $geeks = new multiple(); $geeks->insideC(); $geeks->insideB(); $geeks->insidemultiple(); ?>
I am in interface C I am in interface B I am in inherited class
En el programa anterior se han utilizado múltiples interfaces para implementar la herencia múltiple. En el ejemplo anterior, hay dos interfaces llamadas «B» y «C» que desempeñan el papel de las clases base y hay una clase secundaria llamada «Múltiple» y estamos invocando todas las funciones usando su objeto llamado «geeks».
PHP es un lenguaje de secuencias de comandos del lado del servidor diseñado específicamente para el desarrollo web. Puede aprender PHP desde cero siguiendo este tutorial de PHP y ejemplos de PHP .
Publicación traducida automáticamente
Artículo escrito por AmanAgarwal6 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA