什么是抽象類?
抽象類不能被實例化,同樣方法也沒有實現,只是提供方法聲明,沒有具體實現。抽象類只能作為其他類的父類使用。抽象類使用abstract關鍵字來聲明,語法格式為:
abstract html' target='_blank'>class AbstractName{.....}
注意:
抽象類和普通類也差不多,都有成員變量和成員方法。但還是有區別的。包含抽象方法的類必須本身是抽象的。抽象方法是沒有方法體的,他的功能只能在子類中完成。抽象方法也是使用abstract關鍵字來修飾,格式為:
abstract function abstractName();
抽象方法的后面是分號,而不是跟花括號"{}"。
抽象類的作用是什么呢?
在我們的類當中,有很多類會被不斷的重復寫,這個時候我們可以用抽象類的概念,寫一個公共的類,實例化之后我們可以重復去調用。抽象類就像是一個大的倉庫,里面有很多東西,不是要求你倉庫中的東西你都要使用,當你需要的時候就可以去調用它。如果覺得倉庫中的東西你不滿意,那么,你也可以自己去重新造一個。
抽象方法和抽象類主要用于復雜的類層次關系中,該層次關系需要確保每個子類都包含并重載了某些特定的方法,這也可以通過接口來實現。
抽象類實例講解:
<?phpheader("content-type:text/html;charset=utf-8");abstract class Member{abstract function vipMember($name,$level,$money);}class Member1 extends Member{function vipMember($name,$level,$money){echo "您在PHP 的會員名是:" . $name;echo '<br/>';echo "您的會員等級是:" . $level;echo '<br/>';echo "您發文章賺取的錢是:" . $money;}}class Member2 extends Member{function vipMember($name,$level,$money){echo "您在PHP 的會員名是:" . $name;echo '<br/>';echo "您的會員等級是:" . $level;echo '<br/>';echo "您要提取" . $money . "元";}}$member1 = new Member1();$member2 = new Member2();$member1->vipMember('大白','三級','24.35');echo '<br/>';echo '<hr/>';$member2->vipMember('小明','五級','84.73');
先創建一個會員抽象類,該抽象類包含一個抽象方法vipMember。為抽象類生成兩個子類Member1,Member2,分別在兩個子類中實現抽象方法。最后實例化兩個對象,調用實現后的抽象方法,最后輸出。
以上就是php面向對象之什么是抽象類?及抽象類的作用的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答