In der objektorientierten Programmierung ist eine abstrakte Klasse diejenige, die instanziiert werden kann, d. h. es ist nicht möglich, ein Objekt einer solchen Klasse zu deklarieren. PHP unterstützt das Konzept der abstarct-Klasse seit Version 5.0
Eine mit dem Schlüsselwort abstract definierte Klasse wird zu einer abstrakten Klasse. Darüber hinaus gilt auch jede Klasse, die mindestens eine abstrakte Methode enthält, als abstrakt Beschreibung:
<?php class testclass{ // } ?>
Abstrakte Methode deklariert nur seine Signatur, d. h. seine Sichtbarkeit, Argumente und den Rückgabetyp mit Typhinweisen, und hat keine Funktionalität. Eine Klasse, die eine solche abstrakte Klasse erbt, muss alle abstrakten Methoden überschreiben (Definition bereitstellen). Die entsprechende Methode in der untergeordneten Klasse muss dieselbe Signatur tragen wie in der übergeordneten Klasse. Wenn die untergeordnete Klasse diese Bedingung nicht erfüllt, löst der PHP-Parser eine Ausnahme aus. Eine Klasse, die eine abstrakte Klasse erweitert, kann jetzt instanziiert werden, daher wird sie konkrete Klasse genannt. Im folgenden Beispiel verfügt die übergeordnete Klasse über zwei abstrakte Methoden, von denen nur eine in der untergeordneten Klasse neu definiert wird. Dies führt zu folgendem Fehler:
Live-Demo
$a=new testclass(); PHP Fatal error: Uncaught Error: Cannot instantiate abstract class testclass
Ausgabe
<?php abstract class testclass{ abstract function test1(); abstract function hello(); } class myclass extends testclass{ function test1(){ echo "Overrides parent test method"; } } $a=new myclass(); ?>
Abstrakte Methode mit Argumenten
Im folgenden Beispiel hat die abstrakte Methode in der übergeordneten Klasse zwei Argumente. Die untergeordnete Klasse definiert auch dieselbe Funktion mit zwei Argumenten. Beispiel: Live-Demo:
PHP Fatal error: Class myclass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (testclass::hello)
Das obige ist der detaillierte Inhalt vonAbstraktion der PHP-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!