摘要:由于靜態(tài)方法不需要通過對象即可調(diào)用,所以偽變量在靜態(tài)方法中不可用。繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法另外,這些方法的訪問控制必須和父類中一樣。
extends對象繼承
PHP中類不允許同時繼承多個父類,也就是extends后面只能跟一個父類名稱,這個特性被稱為PHP的單繼承特性
當擴展一個類,子類就會繼承父類所有公有的和受保護的方法。除非子類覆蓋了父類的方法,被繼承的方法都會保留其原有功能。
printItem("baz"); // Output: "Foo: baz" $foo->printPHP(); // Output: "PHP is great" $bar->printItem("baz"); // Output: "Bar: baz" $bar->printPHP(); // Output: "PHP is great" ?>訪問控制(可見性)
對屬性或方法的訪問控制,是通過在前面添加關(guān)鍵字 public(公有),protected(受保護)或 private(私有)來實現(xiàn)的。
面向?qū)ο蟮娜N訪問權(quán)限:
——public共有的類成員,可以再任何地方被訪問到
- 定義該成員的類(自身),該類的子類,其他類
——protected受保護的類成員,可以被其自身和子類訪問
——private私有的類成員,只有自身可以訪問,子類和其他類都無法訪問
class NbaPlayer { // 類的屬性的定義 public $team="Bull"; public $playerNumber="23"; private $age="40"; // private 類型的屬性不能被對象外部訪問,但是可以在對象內(nèi)部使用 $jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23"); // 訪問對象的屬性使用的語法是->符號,后面跟著屬性的名稱 echo $jordan->age." ";//Fatal error: Cannot access private propertyStatic(靜態(tài))關(guān)鍵字
聲明類屬性或方法為靜態(tài),就可以不實例化類而直接訪問。靜態(tài)屬性不能通過一個類已實例化的對象來訪問(但靜態(tài)方法可以)。
由于靜態(tài)方法不需要通過對象即可調(diào)用,所以偽變量 $this 在靜態(tài)方法中不可用。
靜態(tài)屬性不可以由對象通過 -> 操作符來訪問。
age . " "; // 不能在靜態(tài)方法中使用this偽變量,也不能用對象的->方式調(diào)用靜態(tài)成員 } } // 類名加“::”可以訪問類的靜態(tài)成員 // 靜態(tài)成員不需要實例化就可以訪問 echo "The president is ". NbaPlayer::$president. " ";//The president is David Stern NbaPlayer::changePresident("Adam Silver"); echo "The president is changed to ". NbaPlayer::$president. " ";//The president is changed to Adam Silver ?>Final 關(guān)鍵字
如果父類中的方法被聲明為 final,則子類無法覆蓋該方法。如果一個類被聲明為 final,則不能被繼承。
屬性不能被定義為 final,只有類和方法才能被定義為 final。
test(); ?>對象接口
接口是通過 interface 關(guān)鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
接口中定義的所有方法都必須是公有,這是接口的特性。
實現(xiàn)(implements)要實現(xiàn)一個接口,使用 implements 操作符。類中必須實現(xiàn)接口中定義的所有方法,否則會報一個致命錯誤。類可以實現(xiàn)多個接口,用逗號來分隔多個接口的名稱。
實現(xiàn)多個接口時,接口中的方法不能有重名。
eat("Apple"); $monkey = new Animal(); $monkey->eat("Banana") ?>抽象類
定義為抽象的類不能被實例化。任何一個類,如果它里面至少有一個方法是被聲明為抽象的,那么這個類就必須被聲明為抽象的。
繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法;另外,這些方法的訪問控制必須和父類中一樣。
抽象類前面以abstract關(guān)鍵字開始
eat("Apple"); $man->breath(); // 和Animal共用了抽象類ICanEat的breath方法 $monkey = new Animal(); $monkey->eat("Banana"); $monkey->breath(); ?>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/20848.html
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...
閱讀 1877·2021-11-12 10:36
閱讀 2309·2021-09-01 10:29
閱讀 2337·2019-08-30 15:56
閱讀 1015·2019-08-30 12:56
閱讀 2342·2019-08-26 13:58
閱讀 2264·2019-08-23 18:38
閱讀 1486·2019-08-23 18:32
閱讀 2103·2019-08-23 16:53