Abstrakte Klasse vs. Schnittstelle in PHP

Sheeraz Gul 20 Juni 2023
  1. Abstrakte Klasse in PHP
  2. Schnittstelle in PHP
  3. Abstrakte Klasse vs. Schnittstelle in PHP
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.

  1. Die abstrakte Klasse steht unter partieller Abstraktion.
  2. Wir können Variablen in der abstrakten Klasse erstellen.
  3. Abstrakte Klassen können abstrakte und nicht abstrakte Methoden enthalten.
  4. Wir können jeden Zugriffsmodifikator in der abstrakten Klasse verwenden.
  5. Mit dem Schlüsselwort extends können wir auf die abstract class-Features der abgeleiteten Klasse zugreifen.
  6. 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.

  1. Die Schnittstelle ist vollständig abstrahiert.
  2. Wir können keine Variablen in der Schnittstelle erstellen.
  3. Das interface enthält nur abstrakte Methoden.
  4. In der Schnittstelle wird nur der Zugriffsmodifikator public verwendet.
  5. Wir können das interface von einer abgeleiteten Klasse mit dem Schlüsselwort implement erhalten.
  6. 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 Gul avatar Sheeraz Gul avatar

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

Verwandter Artikel - PHP Class