Der Unterschied zwischen abstrakten PHP-Klassen und Schnittstellen

WBOY
Freigeben: 2016-08-08 09:25:19
Original
989 Leute haben es durchsucht

1. Die Schnittstelle wird über das Schlüsselwort „implementiert“ verwendet. Die Verwendung abstrakter Klassen erfolgt über das Schlüsselwort „extends“. Natürlich können Schnittstellen auch über das Schlüsselwort „extends“ vererbt werden.

2. Mitgliedsvariablen (einschließlich statischer Klassenvariablen) können nicht in der Schnittstelle deklariert werden, Klassenkonstanten können jedoch deklariert werden. In abstrakten Klassen können verschiedene Arten von Mitgliedsvariablen deklariert werden, um die Datenkapselung zu implementieren.


3. Schnittstellen haben keine Konstruktoren, aber abstrakte Klassen können Konstruktoren haben.

4. Methoden in Schnittstellen sind standardmäßig vom öffentlichen Typ, während Methoden in abstrakten Klassen durch private, geschützte oder öffentliche Methoden geändert werden können.

5. Eine Klasse kann mehrere Schnittstellen gleichzeitig implementieren, aber eine Klasse kann nur von einer abstrakten Klasse erben.

Abstrakte Klasse oder Schnittstelle.

  • Wenn Sie ein Modell erstellen möchten, das von einigen eng verwandten Objekten verwendet wird, können Sie abstrakte Klassen verwenden. Verwenden Sie Schnittstellen, wenn Sie Funktionen erstellen möchten, die von einer Reihe unabhängiger Objekte übernommen werden.
    • Wenn das Verhalten aus mehreren Quellen geerbt werden muss, verwenden Sie Schnittstellen.
    • Wenn Sie wissen, dass alle Klassen eine gemeinsame Verhaltensimplementierung haben, verwenden Sie eine abstrakte Klasse und implementieren Sie dieses Verhalten darin.

Das Obige hat den Unterschied zwischen abstrakten PHP-Klassen und -Schnittstellen vorgestellt, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage