<?php /* 繼承性 1.面向對象的三大特性之一 2.開放性,可擴充性 3.增加代碼的重用性 4.提高了軟件的可維護性 php 使弱類型語言,沒有重載的概念 子類中重載父類的方法 子類可以聲明和父類相同的方法名,即子類覆蓋父類中同名的方法 在子類中調用父類中被覆蓋的方法 parent::方法名 在子類中編寫構造方法,如果父類中也有構造方法,一定要調用父類中的構造方法 注意:子類中重載的方法,不能低於父類中的訪問權限(子類可以放大權限,但不能縮小權限) */ include "./Person.class.php"; class Student extends Person{ var $school; function __construct($name="name1",$age =20,$sex="女", $school){ $this->name=$name; $this->age=$age; $this->sex=$sex; $this->school = $school; } function study(){ echo $this->age; echo $this->name.":我在{$this->school}學習<br>"; } /* 覆蓋父類的say(),子類中重載的方法,不能低於父類中的訪問權限(子類可以放大權限,但不能縮小權限) 父類中是public function say(){} 子類中變成了private function say(){} private function say(){ echo "{$this->name}:我在{$this->school}學習呢,請不要打擾我<br>"; } 這時候會報錯Fatal error: Access level to Student::say() must be public (as in class Person */ public function say(){ parent::say(); echo "{$this->name}:我在{$this->school}學習呢,請不要打擾我<br>"; } } #$student = new Student; #$student->school="北京大學附屬中學"; #$student->name="haha"; #$student->age=32; #$student->study(); #$student->say(); $student2 = new Student("李會東",24,"男","北京大學"); #echo $student2->school; $student2->say(); ?>