Frage:
Betrachten Sie den folgenden Code zur Veranschaulichung Herausforderung:
<code class="php">class whale { function __construct() { // some code here } function myfunc() { // How do I call the "test" function of fish class from here?? } } class fish extends whale { function __construct() { parent::construct(); } function test() { echo "So you managed to call me !!"; } }</code>
Wie können wir angesichts der oben definierten Klassen effektiv auf die „Test“-Funktion der untergeordneten Klasse („Fisch“) aus der übergeordneten Klasse („Wal“) zugreifen?
Antwort:
In diesem Szenario bietet das Konzept abstrakter Klassen in PHP eine praktikable Lösung. Eine abstrakte Klasse schreibt vor, dass alle von ihr erbenden Klassen bestimmte Funktionen oder Methoden implementieren müssen.
Überarbeiteter Code:
<code class="php">abstract class whale { function __construct() { // some code here } function myfunc() { $this->test(); } abstract function test(); } class fish extends whale { function __construct() { parent::__construct(); } function test() { echo "So you managed to call me !!"; } } $fish = new fish(); $fish->test(); $fish->myfunc();</code>
Erklärung:
Indem wir „whale“ als abstrakte Klasse deklarieren und eine abstrakte Methode „test“ einschließen, erzwingen wir die Anforderung, dass untergeordnete Klassen die Funktion „test“ implementieren müssen. Dadurch kann die „myfunc“-Funktion innerhalb der „whale“-Klasse „test“ direkt aufrufen.
Hinweis: Abstrakte Klassen erlauben keine Objektinstanziierung; Daher dienen sie lediglich als Blaupause für untergeordnete Klassen, um die erforderlichen Methoden zu erben und zu implementieren.
Das obige ist der detaillierte Inhalt vonWie rufe ich Funktionen einer untergeordneten Klasse innerhalb einer übergeordneten Klasse in PHP auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!