public function __construct($v1, $v2)
    {
        $this->valor1 = $v1;
        $this->valor2 = $v2;
    }
    public function imprimirResultado()
    {
        return $this->resultado;
    }
    public abstract function operar();
}
class Suma extends Operacion
{
    public function operar()
    {
        $this->resultado = $this->valor1 + $this->valor2;
    }
}
class Resta extends Operacion
{
    public function operar()
    {
        $this->resultado = $this->valor1 - $this->valor2;
    }
}
$suma1 = new Suma(10, 10);
$suma1->operar();
echo 'El resultado de la suma es ' . $suma1->imprimirResultado() . '<br />';
$resta1 = new Resta(20, 10);
$resta1->operar();
echo 'El resultado de la resta es ' . $resta1->imprimirResultado() . '<br />';
class Suma extends Operacion
{
    public function operar()
    {
        $this->resultado = $this->valor + $this->valor2;
    }
    public function imprimirResultado()
    {
        return "La suma de {$this->valor} + {$this->valor2} es = {$this->resultado}";
    }
}
class Resta extends Operacion
{
    public function operar()
    {
        $this->resultado = $this->valor - $this->valor2;
    }
    public function imprimirResultado()
    {
        return "La resta de {$this->valor} - {$this->valor2} es = {$this->resultado}";
    }
}
$suma = new Suma(10, 20);
$suma->operar();
$suma = $suma->imprimirResultado();
echo "El resultado de la suma es: {$suma}";
echo "<br />";
$resta = new Resta(10, 20);
$resta->operar();
$resta = $resta->imprimirResultado();
echo "El resultado de la resta es: {$resta}";