Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich untergeordnete Klassenfunktionen aus der übergeordneten Klasse in PHP mithilfe abstrakter Klassen auf?

Wie rufe ich untergeordnete Klassenfunktionen aus der übergeordneten Klasse in PHP mithilfe abstrakter Klassen auf?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-19 08:25:02874Durchsuche

How to Call Child Class Functions from Parent Class in PHP Using Abstract Classes?

Untergeordnete Klassenfunktionen aus der übergeordneten Klasse aufrufen

In PHP ist es möglich, eine Funktion aus einer untergeordneten Klasse innerhalb einer übergeordneten Klasse aufzurufen, aber es erfordert sorgfältige Planung.

Betrachten Sie das folgende Codebeispiel:

<code class="php">class whale { ... }
class fish extends whale { ... }</code>

In diesem Beispiel haben wir eine Walklasse und eine Fischklasse, die davon erbt. Das Ziel besteht darin, die test()-Funktion aus der Fischklasse innerhalb der myfunc()-Funktion der Walklasse aufzurufen.

Lösung: Abstrakte Klassen verwenden

Um dies zu erreichen Dadurch können wir abstrakte Klassen nutzen. Eine abstrakte Klasse erzwingt die Implementierung bestimmter Methoden in ihren untergeordneten Klassen.

<code class="php">abstract class whale {
  function __construct() { ... }
  function myfunc() { $this->test(); }
  abstract function test();
}</code>

In der aktualisierten Whale-Klasse deklarieren wir jetzt myfunc() und test() als abstrakte Methoden. myfunc() ruft test() auf, das in der untergeordneten Klasse implementiert werden muss.

<code class="php">class fish extends whale {
  function __construct() { parent::__construct(); }
  function test() { echo "So you managed to call me !!"; }
}</code>

In der Fischklasse stellen wir eine Implementierung für test() bereit. Dadurch wird sichergestellt, dass die abstrakten Anforderungen der übergeordneten Klasse erfüllt werden.

Mit diesem Setup können wir nun die test()-Funktion von fish innerhalb myfunc() der Whale-Klasse aufrufen.

<code class="php">$fish = new fish();
$fish->test(); // Output: So you managed to call me !!
$fish->myfunc(); // Output: So you managed to call me !!</code>

Durch die Verwendung abstrakter Klassen erzwingen wir eine ordnungsgemäße Vererbung und stellen sicher, dass untergeordnete Klassen die erforderlichen Methoden implementieren. Dadurch können wir untergeordnete Klassenfunktionen nahtlos von übergeordneten Klassen aufrufen.

Das obige ist der detaillierte Inhalt vonWie rufe ich untergeordnete Klassenfunktionen aus der übergeordneten Klasse in PHP mithilfe abstrakter Klassen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn