¿Cuáles son la clase final y el método final en PHP?

En este artículo, veremos qué es la clase final y el método final en PHP, además de conocer su implementación a través de los ejemplos.

Los términos clase , objeto , método y final pertenecen a la programación orientada a objetos. En la programación orientada a objetos, existe un concepto importante llamado Herencia que permite que una clase herede propiedades de otra clase e incluso tenga la capacidad de anular los métodos heredados para reemplazar el comportamiento original dado. Existen algunos casos en los que necesitamos evitar que la clase se herede o se anule. Para esto, la palabra clave final se puede utilizar para realizar la tarea en PHP que evita que cualquier clase o método herede y anule la funcionalidad. Se usa simplemente anteponiendo cualquier método o clase con la palabra clave final .

clase final: La clase final es una clase que no puede ser extendida por otras clases. Entonces, una clase que se declara con la palabra clave final no tiene clases secundarias. Una clase se puede declarar como final anteponiendo la palabra clave final antes de la clase. La sintaxis para definir la clase final se da a continuación:

Sintaxis:

final Class className

método final: un método se considera un método final si tiene como prefijo la palabra clave final . Los métodos finales son los métodos que no se pueden anular. Por lo tanto, estos métodos no se pueden anular en child/subclasses. Aumenta la seguridad al impedir la modificación de funciones. La sintaxis para definir un método final se proporciona a continuación:

Sintaxis:

final function functionName(Parameter1, Parameter2, ...);

Entenderemos estos conceptos a través de los siguientes ejemplos.

Ejemplo 1: El siguiente ejemplo arroja un error. Porque aquí la clase ParentGFG se declara como final. Entonces, ninguna clase puede heredar las clases que se definen como finales. Así que aquí la clase ChildGFG no puede heredar la clase final ParentGFG. Entonces PHP no creará una clase secundaria para la clase ParentGFG.

PHP

<?php
  final Class ParentGFG{
     function print(){
      echo "Parent class";
    }
  }
  class ChildGFG extends ParentGFG{
    function print(){
        echo "Child class";
    }
  }
  $object= new ChildGFG();
  $object->print();
?>

Producción:

Fatal error: Class ChildGFG cannot extend final class ParentGFG in 
            /home/522fb47d933747216c6e5fe0e51ac10d.php on line 11

Ejemplo 2: el siguiente ejemplo representa que cualquier función definida como final en la clase principal no puede ser anulada por sus clases secundarias. La clase ParentGFG tiene un método print() que se declara como final. Entonces, cada vez que una clase secundaria de ParentGFG como ChildGFG intenta anular el método print(), PHP arroja un error.

PHP

<?php
  Class ParentGFG{
     final function print(){
      echo "Method in parent class";
    }
  }
  class ChildGFG extends ParentGFG{
    function print(){
        echo "Overrides parent print method";
    }
  }
  $object= new ChildGFG();
  $object->print();
?>

Producción:

Fatal error:Cannot override final method ParentGFG::print() 
            in /home/c055b5cf6357c8cee93036f29c4c2eb8.php on line 11

Ventaja de una clase final y un método final:

  • La ventaja de declarar una clase o método como final es que aumenta la seguridad de la clase y los métodos al evitar la anulación. Ambos son improrrogables.

Desventaja de una clase final y un método final:

  • La desventaja de declarar una clase final es que no permite crear una clase secundaria para esa clase final, lo que reduce la reutilización del código.

Publicación traducida automáticamente

Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *