⊗ppOpIfII 74 of 107 menu

Vererbung von einer Klasse und Implementierung eines Interfaces in OOP in PHP

Eine Klasse kann von einer anderen Klasse erben und dabei ein Interface implementieren. Betrachten wir ein praktisches Beispiel.

Angenommen, wir möchten eine Klasse Programmer erstellen, die einen Namen, ein Gehalt und eine Liste von Sprachen hat, die der Programmierer beherrscht. Bisher ist unsere Beschreibung der Klasse sehr vage: ja, die Klasse wird einen Namen, ein Gehalt, Sprachen haben - aber welche Methoden wird unsere Klasse haben?

Lassen Sie uns unsere Klasse genauer mit Hilfe eines Interfaces iProgrammer beschreiben:

<?php interface iProgrammer { public function __construct($name, $salary); public function getName(); public function getSalary(); public function getLangs(); public function addLang($lang); } ?>

Angenommen, wir haben in unseren bereits implementierten Klassen gestöbert und es stellt sich heraus, dass wir bereits eine ähnliche Klasse Employee haben. Sie implementiert nicht alle Methoden der Klasse Programmer, aber einen Teil. Hier ist der Code unserer bereits existierenden Klasse:

<?php class Employee { private $name; private $salary; public function __construct($name, $salary) { $this->name = $name; $this->salary = $salary; } public function getName() { return $this->name; } public function getSalary() { return $this->salary; } } ?>

Es ist logisch, in unserem Fall so zu machen, dass unsere neue Klasse Programmer einen Teil der benötigten Methoden von der Klasse Employee erbt (und einen Teil werden wir dann in der neuen Klasse selbst implementieren):

<?php class Programmer extends Employee { } ?>

Gleichzeitig wissen wir, dass die Klasse Pogrammer das Interface iProgrammer implementieren soll:

<?php class Programmer implements iProgrammer { } ?>

Lassen Sie uns die Vererbung von der Klasse Employee und die Implementierung des Interfaces iProgrammer kombinieren:

<?php class Programmer extends Employee implements iProgrammer { } ?>

Es ergibt sich, dass unsere Klasse Pogrammer von der Klasse Employee die Methoden __construct, getName und getSalary erbt, und die Methoden addLang und getLangs müssen wir selbst implementieren:

<?php class Programmer extends Employee implements iProgrammer { public function addLang($lang) { // Implementierung } public function getLangs() { // Implementierung } } ?>

Dem Interface iProgrammer ist es egal, ob die Methoden der Klasse eigen sind oder geerbt wurden - Hauptsache, alle beschriebenen Methoden sind implementiert.

Kopieren Sie den Code meiner Klasse Employee und den Code des Interfaces iProgrammer. Kopieren Sie nicht meinen Entwurf der Klasse Programmer - implementieren Sie diese Klasse selbstständig, ohne auf meinen Code zu schauen.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen