1.php Schnittstelle Klasse:Schnittstelle
Wenn viele Menschen gemeinsam ein Projekt entwickeln, können sie alle andere anrufen Wenn Sie einige Klassen schreiben, werden Sie gefragt, wie ich die Implementierungsmethode einer bestimmten Funktion benennen soll. Zu diesem Zeitpunkt kommt die PHP-Schnittstellenklasse ins Spiel B. durch folgende Unterklassen implementiert werden:
Der Code lautet wie folgt:
interface Shop { public function buy($gid); public function sell($gid); public function view($gid); }
Ich deklariere eine Shop-Schnittstellenklasse und definiere drei Methoden: Kaufen, Wenn Sie verkaufen und anzeigen, müssen alle Unterklassen, die von erben, eine dieser drei Methoden implementieren. Wenn die Unterklasse diese nicht implementiert, kann sie nicht ausgeführt werden. Tatsächlich ist die Schnittstellenklasse, um es ganz klar auszudrücken, die Vorlage einer Klasse und die Vorschriften einer Klasse. Wenn Sie zu dieser Kategorie gehören, müssen Sie meine Vorschriften befolgen, egal wie Sie es tun Wie Sie es machen. Das liegt an Ihnen. Dinge wie:
Der Code lautet wie folgt:
class BaseShop implements Shop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } }
Denken Sie darüber nach, in einem großen Projekt, an dem viele Leute arbeiten Zusammenfassend lässt sich sagen, wie praktisch es ist, Schnittstellenklassen wie diese zu haben. Sie müssen andere nicht nach dem Methodennamen Ihrer bestimmten Funktion fragen. Wenn Ihnen das gefällt, kann ich natürlich nichts dagegen tun.
Schlussfolgerung: Die Schnittstellenklasse ist der Anführer einer Klasse und gibt die Richtung an, und die Unterklasse muss ihre festgelegte Methode abschließen.
2.php Abstrakte Klasse : abstrakt
Tatsächlich sind abstrakte Klassen und Schnittstellenklassen teilweise ähnlich, abstrakte Klassen extrahieren die ähnlichen Teile , aber tatsächlich sagt es die Wahrheit über abstrakte Klassen aus: Wenn Sie feststellen, dass viele Ihrer Klassen viele Methoden verwenden, die Sie ständig wiederholen, können Sie die Verwendung abstrakter Klassen in Betracht ziehen. Ist es mir nicht möglich, eine Klasse neu zu schreiben und jede öffentliche Klasse zu instanziieren und dieselbe Methode aufzurufen? B. die Methode dieser Klasse direkt aufzurufen, und Sie können diese Methode auch überladen. Zum Beispiel:
Der Code lautet wie folgt:
abstract class BaseShop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } } class BallShop extends BaseShop { var $itme_id = null; public function construct() { $this->itme_id = 2314; } public function open() { $this->sell($this->itme_id); } }
Hier ist ein Beispiel. Wie oben habe ich eine Store-Klasse definiert und alle ihre Teile extrahiert, z. B. buy (. buy), Sell (sell), Look (view) und diese Methoden in der abstrakten Klasse implementiert sind, dann erhält die Unterklasse, die sie erbt, automatisch diese Methoden, und die Unterklasse führt ihre eigenen einzigartigen Dinge aus, führt eine Duplizierung des Codes ein, und die Wiederverwendbarkeit verbessern.
Fazit: Eine abstrakte Klasse ist ein Dienstanbieter einer Klasse. Sie müssen sie nicht nutzen, wenn Sie mit der Bereitstellung von Diensten unzufrieden sind selbst.
Das obige ist der detaillierte Inhalt vonWelche Funktionen haben PHP-Schnittstellenklassen und abstrakte Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!