您好,登錄后才能下訂單哦!
PHP抽象類的作用是什么?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
在自然語(yǔ)言中,我們理解抽象的概念是,一個(gè)物體的一種大的描述,這種描述對(duì)某類物體來(lái)說(shuō)是共有的特性。那么在PHP中也是一樣的,我們把一個(gè)類進(jìn)行抽象,可以指明類的一般行為,這個(gè)類應(yīng)該是一個(gè)模板,它指示它的子方法必須要實(shí)現(xiàn)的一些行為。
PHP抽象類應(yīng)用的定義:
abstract class ClassName{
}
PHP抽象類應(yīng)用要點(diǎn):
1.定義一些方法,子類必須完全實(shí)現(xiàn)這個(gè)抽象中所有的方法
2.不能從抽象類創(chuàng)建對(duì)象,它的意義在于被擴(kuò)展
3.抽象類通常具有抽象方法,方法中沒(méi)有大括號(hào)
PHP抽象類應(yīng)用重點(diǎn):
1.抽象方法不必實(shí)現(xiàn)具體的功能,由子類來(lái)完成
2.在子類實(shí)現(xiàn)抽象類的方法時(shí),其子類的可見性必須大于或等于抽象方法的定義
3.抽象類的方法可以有參數(shù),也可以為空
4.如果抽象方法有參數(shù),那么子類的實(shí)現(xiàn)也必須有相同的參數(shù)個(gè)數(shù)
PHP抽象類應(yīng)用示例:
abstract public function_name(); //注意沒(méi)有大括號(hào)
PHP抽象類規(guī)則:
某個(gè)類只要至少含有一個(gè)抽象方法,就必須聲明為抽象類
抽象方法,不能夠含有函數(shù)體
繼承抽象類的子類,實(shí)現(xiàn)抽象方法的,必須跟該抽象方法具有相同或者更低的訪問(wèn)級(jí)別
繼承抽象類的子類,如果不實(shí)現(xiàn)所有抽象方法,那么該子類也為抽象類
作為演示,我們來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的抽象類:計(jì)算矩形的面積。這個(gè)矩形可以從形狀類擴(kuò)展。
復(fù)制代碼 代碼如下:
< ?PHP
abstract class Shape {
abstract protected function get_area();
//和一般的方法不同的是,這個(gè)方法沒(méi)有大括號(hào)
//你不能創(chuàng)建這個(gè)抽象類的實(shí)例:$Shape_Rect= new Shape();
}
class Rectangle extends Shape{
private $width;
private $height;
function __construct($width=0,
$height=0){
$this->width=$width;
$this->height=$height;
}
function get_area(){
echo ($this->width+$this->height)*2;
}
}
$Shape_Rect = new Rectangle(20,30);
$Shape_Rect->get_area();
?>
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。