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
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

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