Heim >Backend-Entwicklung >PHP-Problem >Was ist der Unterschied zwischen PHP-Konstruktor und Java-Konstruktor?
Unterschiede: 1. Beim Umschreiben des Unterklassenkonstruktors ruft PHP nicht die übergeordnete Klasse auf, sondern Java ruft standardmäßig den übergeordneten Klassenkonstruktor vor der ersten Anweisung auf. 2. Java lässt mehrere Konstruktoren zu, während PHP-Werte einen Konstruktor zulassen. 3. Der Konstruktor in Java ist notwendig, in PHP jedoch nicht.
Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 7.1, Dell G3-Computer.
Frühes PHP hatte keine objektorientierten Funktionen, aber mit der Entwicklung von PHP wurde ab PHP4 auch objektorientiert hinzugefügt. Die objektorientierte Syntax von PHP hat sich aus JAVA entwickelt. Sie ist an vielen Stellen ähnlich, hat jedoch ihre eigenen Eigenschaften entwickelt. In Bezug auf Konstruktoren wird die Funktion mit demselben Namen wie die Klasse in PHP4 als Konstruktor betrachtet (dieselbe Schreibmethode wird in PHP5 nicht mehr empfohlen). Es wird empfohlen, __construct als Namen zu verwenden der Konstrukteur.
1. Beim Umschreiben des Unterklassenkonstruktors ruft PHP die übergeordnete Klasse nicht auf und JAVA ruft standardmäßig den übergeordneten Klassenkonstruktor vor der ersten Anweisung auf Child
class Father{ public Father(){ System.out.println("this is fahter"); } } class Child extends Father{ public Child(){ System.out.println("this is Child"); } } public class Test { public static void main(String[] args){ Child c = new Child(); } }
Ausgabeergebnis:
ruft Child
2 auf. Implementierungsmethode der Überladung
JAVA ermöglicht mehrere Konstruktoren mit unterschiedlichen Parametertypen und -reihenfolgen. PHP erlaubt nur einen Konstruktor, erlaubt aber Standardparameter. Es kann keine Überladung implementieren, aber den Überladungseffekt simulieren.
JAVA-Code
<?php class Father{ public function __construct(){ echo "正在调用Father"; } } class Child extends Father{ public function __construct(){ echo "正在调用Child"; } } $c = new Child();
PHP-Code
class Car{ private String _color; //设置两个构造函数,一个需要参数一个不需要参数 public Car(String color){ this._color = color; } public Car(){ this._color = "red"; } public String getCarColor(){ return this._color; } } public class TestCar { public static void main(String[] args){ Car c1 = new Car(); System.out.println(c1.getCarColor()); //打印red Car c2 = new Car("black"); System.out.println(c2.getCarColor()); //打印black } }
3. Wenn kein Konstruktor vorhanden ist, fügt der Compiler ihn automatisch hinzu, in PHP jedoch nicht.
4. Der Konstruktor der übergeordneten Klasse in JAVA muss im ersten Satz aufgerufen werden. In PHP gibt es keine solche Einschränkung und kann sogar nach dem letzten Satz des Konstruktors aufgerufen werden.
5. Sie können über this() einen anderen Konstruktor aufrufen, PHP verfügt nicht über eine ähnliche Funktion.
<?php class Car{ private $_color; //构造函数带上默认参数 public function __construct($color="red"){ $this->_color = $color; } public function getCarColor(){ return $this->_color; } } $c1 = new Car(); echo $c1->getCarColor(); //red $c2 = new Car('black'); echo $c2->getCarColor(); //black
Empfohlenes Lernen: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen PHP-Konstruktor und Java-Konstruktor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!