29. Final en PHP

Hay ocasiones en las cuales cuando queramos definir una clase, y no queremos que esta clase pueda ser heredada por otra clase. Para ello se utiliza la palabra reservada final, de la siguiente manera.

Ejm

<?php

  // La clase Hogar no podrá ser heredada de ninguna otra clase
  final class Hogar {
    public $color, $seguridad;
  }

  // Esto nos dará error, la clase 'Dpto' no puede heredar de la clase 'Hogar' ya que hemos
  // antepuesto la palabra reservada 'final' delante de la clase 'Hogar'
  class Dpto extends Hogar {

  }

 

Métodos finales

Anteponiendo la keyword final en el método hacemos que dicho método no pueda extenderse a clase hijas, y por lo tanto no pueda ser sobreescrito.

Ejm

<?php

  // La clase Hogar no podrá ser heredada de ninguna otra clase
  final class Hogar {
    public $color, $seguridad;

    // Método 'final' no puede ser heredado por una clase hija, por lo tanto no puede ser sobreescrito
    final public function saludar(){
      echo "Bienvenido a mi hogar";
    }
  }

  // Esto nos dará error, la clase 'Dpto' no puede heredar de la clase 'Hogar' ya que hemos
  // antepuesto la palabra reservada 'final' delante de la clase 'Hogar'
  class Dpto extends Hogar {

}