Ejercicio de programación con PHP: Reto polimorfismo
Proyecto
0h 30m
Practica la sobrescritura de métodos y el polimorfismo en PHP a través de clases abstractas y uso de la palabra final.
- Crea el archivo
Animal.php
e incluye en él la definición de la clase abstracta Animal con al menos una propiedad (por ejemplo, nombre), un constructor que la asigne y un método abstractoemitirSonido()
. - Crea tres archivos adicionales, cada uno con una subclase que extienda de Animal (por ejemplo, Perro.php, Gato.php y Pajaro.php). En cada subclase, sobrescribe el método
emitirSonido()
para mostrar un sonido o mensaje específico. Asegúrate de usar public en dicho método. - En una de estas subclases, declara un método final que realice alguna lógica sencilla (por ejemplo, mostrar un mensaje indicativo) y comprueba que no se pueda sobrescribir en subclases de esa misma.
- Crea un archivo principal index.php o main.php que incluya las clases y cree al menos un objeto de cada subclase. Guarda todos los objetos en un array.
- Recorre ese array y llama al método emitirSonido() en cada objeto, demostrando que se ejecuta la versión sobrescrita en la subclase.
- Verifica que no aparezcan errores de herencia ni restricciones de acceso. Asegúrate de que el comportamiento final cumpla el objetivo de mostrar diferentes sonidos para cada tipo de animal.
Más ejercicios de programación con PHP
Evalúa tus conocimientos en PHP con más ejercicios de programación de tipo Test, Puzzle, Código y Proyecto con VSCode.
Patrones de diseño
Código
Reto clases y objetos
Código
Tipos de datos, variables y constantes
Código
Reto herencia
Proyecto
Reto archivos en formularios
Código
Reto arrays
Código
Reto formularios
Proyecto
Reto test con PHPUnit
Código
Reto conexión a bases de datos
Código
Reto transacciones
Código
Reto try catch excepciones
Código
Estructuras de control
Proyecto
Reto sentencias CRUD con PDO
Código
Reto try catch de PDOException
Código
Reto manejo de números
Código
Reto archivos temporales
Código
Calculadora en PHP
Proyecto
Reto sesiones
Código
Reto namespaces
Código
Tecnologías de este ejercicio de programación
Entornos de desarrollo para este ejercicio

Visual Studio Code

GitHub