Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in abstrakte PHP-Klassen

Einführung in abstrakte PHP-Klassen

黄舟
黄舟Original
2016-12-17 09:14:331442Durchsuche

In der natürlichen Sprache verstehen wir abstrakte Konzepte als eine umfassende Beschreibung eines Objekts, die ein gemeinsames Merkmal für einen bestimmten Objekttyp ist. Das Gleiche gilt für PHP. Wenn wir eine Klasse abstrahieren, können wir das allgemeine Verhalten der Klasse angeben, das einige Verhaltensweisen angibt, die ihre Untermethoden implementieren müssen.
Definition der abstrakten PHP-Klassenanwendung:
abstrakte Klasse Klassenname{
}

Wichtige Punkte der abstrakten PHP-Klassenanwendung:
1. Definieren Sie einige Methoden, und Unterklassen müssen dies vollständig implementieren Abstraktion Alle Methoden
2. Objekte können nicht aus abstrakten Klassen erstellt werden, ihre Bedeutung muss erweitert werden
3. Abstrakte Klassen haben normalerweise abstrakte Methoden und es gibt keine geschweiften Klammern in den Methoden

Wichtige Punkte für die Anwendung abstrakter PHP-Klassen:
1. Abstrakte Methoden müssen keine spezifischen Funktionen implementieren und werden durch Unterklassen vervollständigt
2. Wenn eine Unterklasse eine Methode einer abstrakten Klasse implementiert, muss die Sichtbarkeit der Unterklasse größer sein als oder gleich der Definition der abstrakten Methode
3. Die Methode der abstrakten Klasse kann Parameter haben oder leer sein
 4. Wenn die abstrakte Methode Parameter hat, muss auch die Implementierung der Unterklasse die gleiche Nummer haben von Parametern

Anwendungsbeispiel für eine abstrakte PHP-Klasse:
abstract public function_name(); //Beachten Sie, dass es keine geschweiften Klammern gibt
Regeln für eine abstrakte PHP-Klasse:
Solange eine Klasse mindestens enthält Eine abstrakte Methode muss als abstrakte Klasse deklariert werden.
Abstrakte Methoden dürfen keinen Funktionskörper enthalten.
Eine Unterklasse, die eine abstrakte Klasse erbt und eine abstrakte Methode implementiert, muss dieselbe oder eine niedrigere Zugriffsebene wie die Zusammenfassung haben Methode
Eine Unterklasse, die eine abstrakte Klasse erbt. Wenn sie nicht alle abstrakten Methoden implementiert, sind die Unterklassen auch abstrakte Klassen.
Zur Demonstration implementieren wir eine einfache abstrakte Klasse: Berechnen Sie die Fläche eines Rechtecks . Dieses Rechteck kann aus der Formklasse erweitert werden.

Der Code lautet wie folgt:


< ?PHP
abstract protected function get_area(); /und allgemein Der Unterschied besteht darin, dass diese Methode keine geschweiften Klammern hat
//Sie können keine Instanz dieser abstrakten Klasse erstellen: $Shape_Rect= new Shape();
class Rechteck erweitert Shape{
private $ width;
private $height;
function __construct($width=0,
$height=0){
$this->width=$width; -> height=$height;
}
function get_area(){
echo ($this->width+$this->height)*2; 🎜>$ Shape_Rect = new Rechteck(20,30);
$Shape_Rect->get_area();
?>


Dies ist auch ein einfaches Beispiel, Nachdem ich nun grundsätzlich die Verwendung abstrakter Klassen in PHP erklären kann, möchte ich zum Rest nicht mehr sagen. Persönlich denke ich, dass abstrakte Klassen im Allgemeinen in großen Projekten verwendet werden, da es meiner Meinung nach zu viele „Regeln“ gibt, an die man sich halten muss, was die Verwendung unpraktisch macht! Das ist natürlich nur meine Meinung. Ich möchte noch etwas sagen. PHP-abstrakte Klassenanwendungen sind einfach geerbt, was bedeutet, dass Sie nur von einer Klasse erben können, aber nicht von einer Klasse, die Klasse A und Klasse B erbt. Wenn Sie eine solche Funktion implementieren möchten, müssen Sie Folgendes tun: Ich muss eine Schnittstelle verwenden, ich werde vorerst nicht auf die Kenntnisse der PHP-Schnittstelle eingehen! Mit einem Wort: Einzelne Vererbung und mehrere Schnittstellen!

Das Obige ist die Einführung von PHP-Abstraktklassen. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn).


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