Temas > Programacion > Php > Modificador acceso a atributos y metodos protected
Julio

Modificadores de acceso a atributos y métodos (protected)
En el concepto anterior presentamos la herencia que es una de
las características fundamentales de la programación orientada a
objetos.
Habíamos dicho que otro objetivo de la POO es el encapsulamiento
(es decir ocultar todo aquello que no le interese a otros objetos),
para lograr esto debemos definir los atributos y métodos como privados.
El inconveniente es cuando debemos utilizar herencia.
Una subclase no puede acceder a los atributos y métodos privados de la
clase padre.
Para poder accederlos deberíamos definirlos como públicos (pero esto
trae como contrapartida que perdemos el encapsulamiento de la clase)
Aquí es donde entra en juego el modificador protected. Un atributo o
método protected puede ser accedido por la clase, por todas sus
subclases pero no por los objetos que difinimos de dichas clases.
En el problema de las clases Operacion y Suma se producirá un error
si tratamos de acceder a un atributo protected donde definimos un
objeto del mismo:
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Operacion {
   protected $valor1;
   protected $valor2;
   protected $resultado;
   public function cargar1($v)
   {
      $this->valor1=$v;
   }
   public function cargar2($v)
   {
      $this->valor2=$v;
   }
   public function imprimirResultado()
   {
      echo $this->resultado.`<br>`;
   }
}
class Suma extends Operacion{
   public function operar()
   {
      $this->resultado=$this->valor1+$this->valor2;
   }
}
$suma=new Suma();
$suma->valor1=10;
$suma->cargar2(10);
$suma->operar();
echo `El resultado de la suma de 10+10 es:`;
$suma->imprimirResultado();
?>
</body>
</html>
Cuando se ejecuta esta línea:
$suma->valor1=10;
Aparece el mensaje de error:
Fatal error: Cannot access protected property Suma::$valor1.













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
      1
2345678
9101112131415
16171819202122
23242526 272829
30      

Viernes 27 de Junio 2025
Semana 26

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal