2 minute read

La herencia en PHP

La herencia es un concepto fundamental en la programación orientada a objetos (POO) que permite que una clase herede propiedades y comportamientos de otra clase. La clase que hereda se conoce como clase derivada o subclase, y la clase de la cual se heredan las propiedades se conoce como clase base o superclase. La herencia permite la reutilización de código y facilita la organización y la estructura del código. En PHP, puedes implementar la herencia utilizando la palabra clave extends. La clase derivada hereda todos los atributos y métodos públicos y protegidos de la clase base. Esto significa que la clase derivada puede acceder a esos atributos y métodos como si fueran propios.

Advertisement

Aquí tienes un ejemplo para ilustrar la herencia en PHP:

En este ejemplo, tenemos una clase base Animal que tiene un atributo protegido $nombre y un método público comer(). Luego, tenemos una clase derivada Perro que extiende la clase Animal. La clase Perro también tiene un método propio ladrar().

Ahora puedes crear un objeto de la clase Perro y acceder tanto a los métodos heredados de la clase Animal como al método propio de la clase Perro:

En este ejemplo, el objeto $perro hereda el método comer() de la clase base Animal y también tiene su propio método ladrar().

La herencia permite que las clases derivadas extiendan y personalicen el comportamiento de las clases base, añadiendo nuevos métodos o modificando los existentes. Esto facilita la organización del código y la creación de una jerarquía de clases relacionadas.

El polimorfismo en PHP

El polimorfismo es un concepto importante en la programación orientada a objetos (POO) que permite que un objeto pueda tomar diferentes formas o comportarse de diferentes maneras según el contexto en el que se utilice. En términos más generales, el polimorfismo se refiere a la capacidad de un objeto de ser tratado como una instancia de varias clases relacionadas.

El polimorfismo se basa en dos características clave: la herencia y los métodos sobrescritos (o redefinidos). Cuando una clase derivada hereda de una clase base, puede redefinir los métodos de la clase base en la clase derivada para que se adapten a su comportamiento específico. Esto significa que un objeto de la clase derivada se puede utilizar en lugar de un objeto de la clase base, y los métodos redefinidos se ejecutarán de acuerdo con el tipo concreto del objeto en tiempo de ejecución.

Aquí tienes un ejemplo para ilustrar el polimorfismo en PHP:

En este ejemplo, tenemos una clase base Animal con un método hacerSonido(). Luego, tenemos dos clases derivadas Perro y Gato que heredan de la clase Animal y redefinen el método hacerSonido() para adaptarlo al comportamiento específico de cada animal.

Ahora puedes crear objetos de las diferentes clases y utilizar el polimorfismo para ejecutar los métodos de forma polimórfica:

En este ejemplo, tenemos tres objetos: $animal1 es un objeto de la clase Animal, $animal2 es un objeto de la clase Perro y $animal3 es un objeto de la clase Gato. Aunque todos los objetos se asignan a variables del tipo Animal, cuando se llama al método hacerSonido(), el comportamiento se adapta según el tipo real del objeto en tiempo de ejecución. Esto es polimorfismo. El polimorfismo permite tratar objetos de clases distintas de manera uniforme y proporciona flexibilidad y extensibilidad en el diseño de software orientado a objetos.

This article is from: