Abstrakte Klasse vs. Schnittstelle in PHP
Dieses Tutorial demonstriert den Unterschied zwischen abstract class
und interface
in PHP.
Bevor wir auf die Unterschiede eingehen, müssen wir zunächst die Konzepte abstrakte Klasse
und Schnittstelle
verstehen. Hier sind die wichtigen Punkte sowohl für abstrakte Klasse
als auch für Schnittstelle
.
Abstrakte Klasse in PHP
Die abstrakte Klasse
wird teilweise von Entwicklern implementiert und enthält mindestens eine abstrakte Methode, eine Methode ohne jeglichen Code. Hier sind einige wichtige Punkte zum Verständnis der abstrakten Klasse
.
- Die
abstrakte Klasse
steht unter partieller Abstraktion. - Wir können Variablen in der
abstrakten Klasse
erstellen. - Abstrakte Klassen können abstrakte und nicht abstrakte Methoden enthalten.
- Wir können jeden Zugriffsmodifikator in der
abstrakten Klasse
verwenden. - Mit dem Schlüsselwort
extends
können wir auf dieabstract class
-Features der abgeleiteten Klasse zugreifen. - In der
abstrakten Klasse
sind Mehrfachvererbungen möglich.
Hier ist ein Beispiel, wie man eine abstrakte Klasse
erstellt.
<?php
abstract class Demo_Abstract_Class {
abstract protected
function Get_Value();
public
function Print_Value() {
print $this -> Get_Value();
}
}
?>
Schnittstelle in PHP
Die Schnittstelle wird durch das Schlüsselwort interface
definiert, wobei alle Methoden abstrakt sind. Hier sind einige wichtige Punkte, um die Schnittstelle
zu verstehen.
- Die Schnittstelle ist vollständig abstrahiert.
- Wir können keine Variablen in der
Schnittstelle
erstellen. - Das
interface
enthält nur abstrakte Methoden. - In der
Schnittstelle
wird nur der Zugriffsmodifikatorpublic
verwendet. - Wir können das
interface
von einer abgeleiteten Klasse mit dem Schlüsselwortimplement
erhalten. - Bei
Schnittstellen
sind Mehrfachvererbungen möglich.
Hier ist ein Beispiel, um die Schnittstelle
zu demonstrieren.
<?php
interface Demo_Interface {
public
function execute();
}
?>
Abstrakte Klasse vs. Schnittstelle in PHP
Hier sind die Unterschiede zwischen abstrakter Klasse
und Schnittstelle
.
Abstrakte Klasse | Schnittstelle |
---|---|
Keine Mehrfachvererbung. | Unterstützt Mehrfachvererbung. |
Die abstrakte Klasse enthält ein Datenelement. |
Die Schnittstelle enthält kein Datenelement. |
Die abstrakte Klasse unterstützt die Container. |
Die Schnittstelle unterstützt die Container nicht. |
Die abstrakte Klasse enthält vollständige und unvollständige Mitglieder. |
Die Schnittstelle enthält nur die vollständigen Mitglieder, was sich auch auf die Signatur des Mitglieds bezieht. |
Die abstrakte Klasse kann Zugriffsmodifikatoren mit Subs, Eigenschaften und Funktionen haben. |
In der Schnittstelle gilt alles als öffentlich, weshalb es keine Zugriffsmodifikatoren hat. |
Die vollständigen Mitglieder der abstrakten Klasse können statisch sein, während die unvollständigen Mitglieder nicht statisch sein können. |
Kein Mitglied der Schnittstelle darf statisch sein. |
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook