Considere o programa desenvolvido na linguagem PHP (php.net):
<?php
class Person {
public $age;
public function __construct() {
$this->age = 0;
}
public function incrementAge() {
$this->age += 1;
$this->ageChanged();
}
protected function decrementAge() {
$this->age -= 1;
$this->ageChanged();
}
private function ageChanged() {
echo "Age changed to {$this->age}\n";
}
}
class SupernaturalPerson extends Person{
public function incrementAge() {
$this->decrementAge();
}
}
$person = new Person;
$person->incrementAge();
$person->decrementAge();
$person->ageChanged();
$person = new SupernaturalPerson;
$person->incrementAge();
?>
Sobre o programa acima:
I. A instrução da linha 28 não pode ser executada, pois o método decrementAge() só pode ser chamado por métodos dentro da mesma classe ou de classes que a herdarem.
Il. A instrução da linha 29 não pode ser executada, pois o método ageChanged() só pode ser chamado por métodos dentro da mesma classe.
Ill. Na linha 22, o método decrementAge() pode ser chamado dentro da classe SupernaturalPerson, pois ela está herdando os métodos da classe Person.
Está correto o que se afirma em: