Der Unterschied zwischen Merkmalen und Schnittstellen ist: 1. Merkmale ähneln include und können mithilfe von use in die Mitte der Klasse eingefügt werden. 2. Die definierten Methoden sind Teil der Klasse und können nicht direkt instanziiert werden. Die Methoden in der Schnittstelle sind virtuell. Diese Methoden müssen beim Erben neu definiert werden.
Der Unterschied zwischen Merkmalen und Schnittstellen ist:
1. trait
sieht eher so aus, als ob es sich um Code handelt Es handelt sich um ein kleines Plug-In, das zur Wiederverwendung geschrieben wurde und dem include ähnelt. Sie können es verwenden, um es in der Mitte einer Klasse zu platzieren, sodass die im Merkmal definierten Methoden Teil der Klasse sind und nicht direkt instanziiert werden können.
2. Die Methoden in interface
sind alle virtuell und müssen beim Erben neu definiert werden. Mit anderen Worten, die Methoden sind beschreibender Natur und haben keine tatsächlichen Operationen. Wenn Sie erben, müssen Sie diese Methoden implementieren, da sonst Fehler auftreten und nicht fehlen dürfen. Schnittstellen werden in der Architektur häufig verwendet, um die Eigenschaften und Methoden einer Instanz abstrakt zu definieren. Vereinfacht ausgedrückt ist es wie eine Vereinbarung, eine vom Chef zugewiesene Aufgabe. Wenn Sie erben möchten, müssen Sie diese Vereinbarung einhalten, also die von Ihrem Chef zugewiesenen Aufgaben erfüllen.
<?php trait MyTrait { protected $var = 'MyTrait_var'; protected $var1 = 'MyTrait_var'; function __construct() { echo $this->var."</br>"; } function a() { echo "a"."</br>"; } } interface MyInterface { function __construct(); function b(); } abstract class MyAbstract { protected $var2 = 'MyAbstract_var'; use MyTrait; function b() { echo "b"."</br>"; } } class MyClass extends MyAbstract implements MyInterface { protected $var3 = 'MyClass_var'; function c() { echo "c"."</br>"; } } $class = new MyClass(); $class->a(); $class->b(); $class->c();
Im obigen Code kann das function b()
in MyAbstract auch in MyClass
platziert werden, oder MyAbstract implementiert die Schnittstelle MyInterface
Verwandte Lernempfehlungen: PHP-Programmierung vom Anfänger bis zum Meister
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Merkmalen und Schnittstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!