您好,登錄后才能下訂單哦!
這篇“php中有限繼承的示例分析”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“php中有限繼承的示例分析”,給大家總結了以下內容,具有一定借鑒價值,內容詳細步驟清晰,細節處理妥當,希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內容吧。
php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
定義:有限繼承
,指子類
在繼承父類
的成員的時候,并非繼承所有內容,而是繼承并使用父類部分內容。 通俗的理解就是,公司的上一任CEO在離任時,準備把公司的一些事物交接給現任CEO,交接的文件,工作內容都是可以書面化記錄下來隨時查閱,但是對于一些工作的見解這些是沒辦法交接的,這就是現任CEO對對上任CEO的有限繼承。
1.繼承內容:PHP中繼承是子類繼承父類所有的公有成員
、受保護成員
和私有屬性
,不能繼承父類的私有方法。
<?php class A{ public $name='張三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); $this->getAge();//父類私有方法無法繼承 } } $a=new B(); var_dump($a); /*object(B)#1 (3) { ["name"]=> string(6) "張三" ["sex":protected]=> string(3) "man" ["age":"A":private]=> string(2) "25" } */ ?>
2.受保護繼承protected
protected
關鍵字的產生本身就是純用于繼承的,表示允許被子類在子類內部訪問的意思,而不允許被外部直接訪問。
<?php class A{ public $name='張三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); } } $a=new B(); var_dump($a); echo "<br>"; //$a->getSex(); //: Call to protected method A::getSex() from context 不能在外部訪問 ?>
小提示:訪問父類私有成員:子類若想訪問父類私有成員,那么前提是父類提供公有或者受保護的方法給子類訪問(一般不建議使用,否則設置私有的意義就沒有了),。
3.靜態成員(類常量)
也遵循繼承規則(PHP繼承本質是對象),只是訪問方式是由類進行訪問。
class Fu{ const NAME = '人'; public static $count = 0; protected static $type = array('黑','黃','白'); public static function getCount(){ echo self::NAME; echo self::$count; } protected static function getType(){ print_r(self::$type); } } class Zi extends Fu{ //依然需要子類中訪問受保護成員 public static function getFu(){ Fu::getType(); } } echo Zi::$count; //允許直接訪問 Zi::getCount(); //訪問父類靜態方法 Zi::getFu(); //利用子類公有方法訪問父類受保護成員
4.構造方法
和析構方法
也可以被子類繼承,此時需要注意子類對象實例化時對應的父類構造方法
的參數。
//父類 class Fu{ private $money; public function __construct($money){ $this->money = $money; } public function __destruct(){ echo 'die'; } } //子類繼承 class Zi extends Fu{} //子類實例化:自身是空類,沒有指定構造方法 //$m = new Zi(); //錯誤:缺少參數,因為會自動調用父類構造方法 $m = new Zi(100); //正確
感謝你的閱讀,希望你對“php中有限繼承的示例分析”這一關鍵問題有了一定的理解,具體使用情況還需要大家自己動手實驗使用過才能領會,快去試試吧,如果想閱讀更多相關知識點的文章,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。