Va rugam dezactivati programul ad block pentru a vizualiza pagina!

Cumpara abonament!
Plateste cu PayPal

PHP OOP - Moștenire. PHP - Moștenire și modificator access protejat. Metoda protejată intro().

Partajeaza in Google Classroom

Partajeaza cu Google Classroom
Susține Lectii-Virtuale!

Memorator: Descriere video Descarcă PDF

PHP - Moștenire și modificator access protejat

În capitolul anterior am aflat că proprietățiile sau metodele protejate pot fi accesate în cadrul clasei și prin clase derivate din acea clasă. Ce inseamna asta?

Să ne uităm la un exemplu:

Exemplu:
 
<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "Fructul este {$this->name} și culoarea este {$this->color}.";
  }
}

class Strawberry extends Fruit {
  public function message() {
    echo "Sunt un fruit sau o berry? ";
  }
}

//  Încercați să apelați toate cele trei metode din afara clasei
$strawberry = new Strawberry("Strawberry", "red");  // OK. __construct() este public
$strawberry->message(); // OK. message() este public
$strawberry->intro(); // ERROR. intro() este protejat
?>

În exemplul de mai sus vedem că dacă încercăm să apelăm la o metodă protejată (intro()) din afara clasei, vom primi o eroare. Metodele publice vor funcționa bine!

Să ne uităm la un alt exemplu:

Exemplu:
 
<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "Fructul este{$this->name} și culoarea este {$this->color}.";
  }
}

class Strawberry extends Fruit {
  public function message() {
    echo "Sunt un fruit sau o berry? ";
    // Apelați metoda protejată din cadrul clasei derivate - OK
    $this -> intro();
  }
}

$strawberry = new Strawberry("Strawberry", "red"); // OK. __construct() este public
$strawberry->message(); // OK. message() este public și apelează intro() (care este protejat) din cadrul clasei derivate
?>

În exemplul de mai sus vedem că toate funcționează bine! Se datorează faptului că numim metoda protejată (intro()) din interiorul clasei derivate.
Cumpara abonament
Plătește cu PayPal

Ajutor
Feedback-ul d-voastră este important pentru noi. Dacă observați vreo neregulă vă rugăm să ne-o semnalați apăsând butonul Trimite Feedback de mai jos.

Despre Lecții-Virtuale.ro

Lecții-Virtuale este o platformă educațională care oferă suport în vederea pregătirii pentru Evaluare Națională și Bacalaureat la Matematică, Fizică și Chimie. Lecțiile noastre sunt alcătuite din filme și exerciții și probleme cu tot cu rezolvări. Platforma noastră este o soluție ideală pentru școala online. Pentru facilitarea activității profesorilor în cadrul ecosistemului GSuite de la Google am implementat butonul Google Classroom. Scopul nostru este să ne concentrăm pe prezentarea noțiunilor și fenomenelor într-o manieră care să stimuleze înțelegerea și nu memorarea mecanică. Ne propunem să facilităm accesul la conținut educațional de calitate mai ales elevilor cu venituri mai modeste care nu își pemit meditații particulare. Sperăm să vă simțiti bine alături de noi și să invățați lucruri folositoare. Hai România!

Newsletter

Abonează-te la Newsletter pentru a fi la curent cu toate ofertele noastre.

Parteneri

EduApps partener Lectii Virtuale UiPath partener Lectii Virtuale Scoala365 partener Lectii Virtuale CCD Galați partener Lectii Virtuale

2024 © Lecții-virtuale.ro Toate drepturile rezervate
Termeni   Despre   Contact   Confidenţialitate   Cariere Parteneri