⊗ppOpFnMt 64 of 107 menu

Abstrakte Methoden in OOP in PHP

Abstrakte Klassen können auch abstrakte Methoden enthalten. Solche Methoden sollten keine Implementierung haben, sondern dienen dazu anzugeben, dass solche Methoden bei den Nachkommen vorhanden sein müssen. Und die eigentliche Implementierung dieser Methoden - ist bereits die Aufgabe der Nachkommen.

Um eine Methode als abstrakt zu deklarieren, sollte beim Deklarieren das Schlüsselwort abstract geschrieben werden.

Lassen Sie uns es praktisch ausprobieren. Nehmen wir an, dass alle Nachkommen der Klasse User die Methode increaseRevenue haben sollten.

Diese Methode sollte das aktuelle Einkommen des Benutzers nehmen und es um einen bestimmten Wert erhöhen, der als Parameter übergeben wird.

Die Klasse User selbst weiß nicht, welches genau Einkommen der Erbe erhalten wird - denn bei einem Arbeitnehmer ist es das Gehalt, und bei einem Studenten - das Stipendium. Daher wird jeder Nachkomme diese Methode auf seine eigene Weise implementieren.

Der Punkt hier ist, dass die abstrakte Methode der Klasse User den Programmierer zwingt, diese Methode in den Nachkommen zu implementieren, andernfalls gibt PHP einen Fehler aus. So können Sie, oder ein anderer Programmierer, der mit Ihrem Code arbeitet, auf keinen Fall vergessen, die benötigte Methode im Nachkommen zu implementieren.

Also, lassen Sie es uns praktisch versuchen. Fügen wir die abstrakte Methode increaseRevenue in die Klasse User ein:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Abstrakte Methode ohne Körper: abstract public function increaseRevenue($value); } ?>

Lassen Sie unsere Klasse Employee vorerst unverändert. In diesem Fall, selbst wenn kein Objekt der Klasse Employee erstellt wird, sondern nur der Code ausgeführt wird, in dem unsere Klassen definiert sind, - gibt PHP einen Fehler aus.

Schreiben wir nun die Implementierung der Methode increaseRevenue in der Klasse Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Schreiben wir die Implementierung der Methode: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Prüfen wir die Funktionalität unserer Klasse:

<?php $employee = new Employee; $employee->setName('john'); $employee->setSalary(1000); $employee->increaseRevenue(100); echo $employee->getSalary(); ?>

Implementieren wir die Methode increaseRevenue auch in der Klasse Student. Nur wird unsere Methode nun das Stipendium erhöhen:

<?php class Student extends User { private $scholarship; // Stipendium public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Methode erhöht das Stipendium: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Fügen Sie in Ihre Klasse User die gleiche abstrakte Methode increaseRevenue hinzu. Schreiben Sie die Implementierung dieser Methode in den Klassen Employee und Student.

Machen Sie in der Klasse Figure abstrakte Methoden zum Erhalten der Fläche und des Umfangs der Figur.

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