Dieser Artikel stellt hauptsächlich die objektorientierte Vererbung in PHP vor, die einen gewissen Referenzwert hat. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.
Vererbung
Die Unterklasse erbt alle öffentlichen und geschützten Eigenschaften und Methoden der übergeordneten Klasse.
Verwenden Sie das Schlüsselwort extends
Vererbung. Eine Klasse integriert eine andere und kann nicht mehr als eine erben.
子类、父类、基类、超类、派生类
Unterklasse, abgeleitete Klasse——> Von der Basisklasse geerbte Klasse
Elternklasse, Basisklasse, Superklasse bezieht sich auf——> ; Geerbte Klasse.
<?php class Father { public $a = 'public'; protected $b = 'protected'; private $c = 'private'; public function func1() { echo 'This is public function','<br/>'; } protected function func2() { echo 'This is protected function','<br/>'; } private function func3() { echo 'This is private function','<br/>'; } } // 继承父类 class Child extends Father { // 子类中调用继承来的方法 public function test() { $this -> func1(); $this -> func2(); //$this -> func3(); 私有方法不可以调用 } } // 实例化子类 $son = new Child(); // 尝试调用属性 echo $son -> a,'<br/>'; //echo $son->b; 不能直接输出b //echo $son -> c; 继承都没继承,当然不能输出 // 尝试调用方法 //$son -> func1(); //$son -> func2(); 不能在类外调用func2 //$son -> func3(); 继承都没继承,当然不能调用 // 间接调用继承自父类的普通方法 $son -> test();
Umschreiben
1) Erben Sie die Methode der übergeordneten Klasse und die Definition in der Die Unterklasse ist mit der übergeordneten Klasse identisch. Klasse hat eine Methode mit demselben Namen und hat die gleiche Anzahl von Parametern
2) Wenn eine Unterklasse a überschreibt Methode in der übergeordneten Klasse, PHP ruft die Methode in der übergeordneten Klasse nicht auf Überschriebene Methoden 3) Ob die Methode der übergeordneten Klasse aufgerufen werden soll, hängt von der Unterklasse ab. 4) Bei der Implementierung der Methodenabdeckung kann der Zugriffsmodifikatorunterschiedlich sein , , aber der Zugriffsbereich der Unterklasse muss größer oder gleich dem übergeordneten sein Klassenzugriffsbereich .
Verwendung:parent:: 访问父类中被重写的属性和方法
<?php class Father { public function shuo($num) { echo 'a a o o'; } } class Son extends Father { public function shuo($num) { // 调用父类中被重写的方法 // parent::shuo($num); echo 'Hello World'; } public function test($num) { parent::shuo($num); } } // 实例化子类 $son1 = new Son(); $son1 -> shuo(1); // Hello World $son1 -> test(1); // a a o o
finales SchlüsselwortWenn die Methode in der übergeordneten Klasse als final deklariert ist, dann Unterklassen Diese Methode kann nicht überschrieben werden. Wenn eine Klasse als endgültig deklariert wird, kann sie nicht vererbt werden. Beispiel
<?php class Father { final public function test() { echo 'hello'; } } class Son extends Father { public function test() { echo '你好'; } } // 实例化子类 $son1 = new Son(); $son1 -> test(); // 报错,函数不能被重写
php objektorientierte Überladung
Das obige ist der detaillierte Inhalt vonObjektorientierte PHP-Vererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!