Warum kann ich nicht überschreiben diese geschützte Funktion in PHP?

Dies ist wohl eine grundsätzliche Frage, aber ich bin nach diesem tutorial und an einer Stelle der code sieht ungefähr so aus.

<?php

class person
{
    public $name;
    public $height;
    protected $social_security_no;
    private $pin_number = 3242;

    public function __construct($person_name)
    {
        $this->name = $person_name;
    }
    public function set_name($new_name)
    {
        $this->name = $new_name;
    }

    protected function get_name()
    {
        return $this->name;
    }

    public function get_pin_number_public()
    {
        $this->pub_pin = $this->get_pin_number();
        return $this->pub_pin;
    }

    private function get_pin_number()
    {
        return $this->pin_number;
    }

}

class employee extends person
{

    public function __construct($person_name)
    {
        $this->name = $person_name;
    }

    protected function get_name()
    {
        return $this->name;
    }
}

Jedoch wenn ich diese

<?php include "class_lib.php";?>
    </head>
    <body id="theBody">
    <div>

<?php
$maria = new person("Default");

$dave = new employee("David Knowler");
echo $dave->get_name();
?>

bekomme ich diesen Fehler

Fatal error: Call to protected-Methode Mitarbeiter::get_name() aus
Kontext " in C:\Users\danny\Documents\Workspace\test\index.php auf
Zeile 13

Scheint das problem zu sein, wenn ich hinzufügen geschützt get_name () - Funktion in der Mitarbeiter-Klasse, aber es scheint mir, dass dies ist die bevorzugte Methode zum überschreiben in der Anleitung. Irgendwelche Ideen?

geschützte Methoden können nicht aufgerufen werden, außerhalb der Klasse

InformationsquelleAutor lorless | 2013-10-09

Schreibe einen Kommentar