本篇我們介紹下什麼是抽象類別以及用法簡介。
什麼是抽象類別?
抽象類別不能被實例化,同樣方法也沒有實現,只是提供方法聲明,沒有具體實現。抽象類別只能作為其他類別的父類別使用。抽象類別使用abstract關鍵字來聲明,語法格式為:
abstract class AbstractName{ ..... }
注意:
#抽象類別和普通類別也差不多,都有成員變數和成員方法。但還是有差別的。包含抽象方法的類別必須本身是抽象的。抽象方法是沒有方法體的,他的功能只能在子類別中完成。抽象方法也是使用abstract關鍵字來修飾,格式為:
abstract function abstractName();
抽象方法的後面是分號,而不是跟花括號"{}"。
抽象類別的作用是什麼呢?
在我們的類別當中,有很多類別會被不斷的重複寫,這個時候我們可以用抽象類別的概念,寫一個公共的類,實例化之後我們可以重複去調用。抽象類別就像是一個大的倉庫,裡面有很多東西,不是要求你倉庫中的東西你都要使用,當你需要的時候就可以去呼叫它。如果你覺得倉庫裡的東西你不滿意,那麼,你也可以自己去重新造一個。
抽象方法和抽象類別主要用於複雜的類別層次關係中,該層次關係需要確保每個子類別都包含並重載了某些特定的方法,這也可以透過介面來實現。
抽象類別實例講解:
<?php header("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物件導向之什麼是抽象類別?及抽象類別的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!