Examen Sferea – POO

Evaluación de Conocimientos · Metodología Fast Track

Respuestas de Jair Rivera

Define los siguientes conceptos de Programación Orientada a Objetos (POO) e incluye un ejemplo de código en PHP que muestre su funcionalidad.

  • Constructor
  • Método
  • Herencia
  • Excepción
  • Interfaz
  • Clase Abstracta
  • Diferencia entre this y super
1

Constructor

Método especial que se ejecuta automáticamente al crear un objeto y sirve para inicializar propiedades.

<?php

class Persona {
    public $nombre;

    public function __construct($nombre) {
        $this->nombre = $nombre;
    }
}

$p = new Persona("Jair");
echo $p->nombre; // Jair
          

Al hacer new Persona("Jair"), el constructor asigna el nombre a la propiedad.

2

Método

Función definida dentro de una clase. Representa una acción que el objeto puede realizar.

<?php

class Persona {
    public function saludar() {
        return "Hola!";
    }
}

$p = new Persona();
echo $p->saludar(); // Hola!
          

$p->saludar() ejecuta la acción del objeto.

3

Herencia

Permite que una clase hija reutilice propiedades y métodos de una clase padre.

<?php

class Animal {
    public function sonido() {
        return "Hace un sonido";
    }
}

class Perro extends Animal {
    // Hereda sonido()
}

$dog = new Perro();
echo $dog->sonido(); // Hace un sonido
          

Perro hereda el método sonido() de Animal.

4

Excepción

Error controlado que se puede lanzar y capturar con try / catch.

<?php

try {
    throw new Exception("Algo salió mal");
} catch (Exception $e) {
    echo $e->getMessage(); // Algo salió mal
}
          

El programa no se detiene: el error se maneja dentro del bloque catch.

5

Interfaz

Contrato que define métodos que una clase está obligada a implementar.

<?php

interface Forma {
    public function area();
}

class Cuadrado implements Forma {
    public $lado;

    public function __construct($lado) {
        $this->lado = $lado;
    }

    public function area() {
        return $this->lado * $this->lado;
    }
}

$c = new Cuadrado(4);
echo $c->area(); // 16
          

La interfaz Forma obliga a implementar el método area().

6

Clase Abstracta

Clase base que no se puede instanciar directamente y puede tener métodos abstractos y métodos normales.

<?php

abstract class Vehiculo {
    abstract public function arrancar();

    public function saludar() {
        return "Soy un vehículo";
    }
}

class Auto extends Vehiculo {
    public function arrancar() {
        return "El auto arrancó";
    }
}

$a = new Auto();
echo $a->arrancar(); // El auto arrancó
          

Auto debe implementar el método abstracto arrancar().

7

Diferencia entre this y super

En PHP usamos $this para referirnos al objeto actual y parent:: como equivalente a super en otros lenguajes, para llamar métodos del padre.

<?php

class Padre {
    public function mensaje() {
        return "Soy el padre";
    }
}

class Hijo extends Padre {
    public function mensaje() {
        // Llamamos al método del padre y agregamos texto
        return parent::mensaje() . " y soy el hijo";
    }
}

$h = new Hijo();
echo $h->mensaje(); 
// Soy el padre y soy el hijo
          

parent::mensaje() llama al método de la clase padre. Dentro de la clase hija, $this se refiere al objeto actual.