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
 123456
78910111213
14151617181920
21222324252627
282930    

Viernes 4 de Abril 2025
Semana 14

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