PHP-Überladung
Eine Methode in einer Klasse hat den gleichen Namen wie eine andere Methode, aber die Parameter sind unterschiedlich aufgerufen wird, ist eine überladene Methode.
Da PHP eine schwach typisierte Sprache ist, können die Parameter der Methode selbst leider unterschiedliche Datentypen empfangen, und da die PHP-Methode eine unbegrenzte Anzahl von Parametern empfangen kann, gibt es keinen strikten Sinn für Methodenüberladung .
Überladen bedeutet in PHP, eine Methode mit demselben Namen wie die übergeordnete Klasse in einer Unterklasse zu definieren, und diese Methode überschreibt die Methode der übergeordneten Klasse in der Unterklasse.
In Unterklassen ist manchmal eine Überladung erforderlich, da von der übergeordneten Klasse geerbte Methoden möglicherweise nicht auf von der Unterklasse definierte Eigenschaften oder Methoden zugreifen können.
Beispiel:
<?php class Person { var $name; var $age; function say() { echo "我的名字叫:".$this->name."<br />"; echo "我的年龄是:".$this->age; } } // 类的继承 class Student extends Person { var $school; //学生所在学校的属性 function say() { echo "我的名字叫:".$this->name."<br />"; echo "我的年龄是:".$this->age."<br />"; echo "我正在".$this->school."学习"; } } $t1 = new Student(); $t1->name = "张三"; $t1->age = "18"; $t1->school = "人民大学"; $t1->say(); ?> 运行该例子,输出: 我的名子叫:张三 我的年龄是:18 我正在人民大学学习 提示 如果父类定义方法时使用了 final 关键字,则不允许被子类方法覆盖。 访问父类被覆盖的方法 可以通过 :: 符号来访问父类被覆盖的方法或成员属性: function say() { parent::say(); //或者 Person::say(); echo "我在".$this->school."上学<br />";