新聞中心

在南召等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站制作,南召網(wǎng)站建設(shè)費(fèi)用合理。
1、抽象方法
抽象方法是沒有方法體的方法,所謂的沒有方法體指的就是,在聲明方法時(shí)候沒有花括號(hào)
{ } 以及其中的內(nèi)容,而是直接在方法名后加上分號(hào)結(jié)束。另外,在聲明抽象方法時(shí)要使用“abstract”關(guān)鍵字修飾。格式如下所示:
abstract 訪問權(quán)限修飾符 function 方法名1(參數(shù)列表);
abstract 訪問權(quán)限修飾符 function 方法名2(參數(shù)列表);
2、抽象類
只要一個(gè)類里面有一個(gè)方法是抽象方法,那么這個(gè)類就必須定義為抽象類,抽象類也需要使用“abstract”關(guān)鍵字來修飾,抽象類中也可以包含不是抽象方法的成員方法和成員屬性,但訪問權(quán)限不能是私有的(使用 private 關(guān)鍵字修飾),因?yàn)槌橄箢愔械姆椒ㄐ枰蛔宇惱^承。
下面的示例演示了如何定義一個(gè)抽象類,代碼如下所示:
abstract class 類名{
public $name;
abstract 訪問權(quán)限修飾符 function 方法名1();
abstract 訪問權(quán)限修飾符 function 方法名2();
訪問權(quán)限修飾符 function 方法名3(){
... ... ;
}
}
抽象類就像是一個(gè)“半成品”的類,在抽象類中包含沒有被實(shí)現(xiàn)的抽象方法,所以抽象類是不能被實(shí)例化的,即創(chuàng)建不了對(duì)象,也就不能直接使用它。既然抽象類是一個(gè)“半成品”的類,那么使用抽象類有什么作用呢?
可以將抽象類看作是為它的子類定義公共接口,將它的操作(可能是部分也可能是全部)交給子類去實(shí)現(xiàn)。就是將抽象類作為子類重載的模板使用的,定義抽象類就相當(dāng)于定義了一種規(guī)范,這種規(guī)范要求子類去遵守。
當(dāng)子類繼承抽象類以后,就必須把抽象類中的抽象方法按照子類自己的需要去實(shí)現(xiàn)。子類必須把父類中的抽象方法全部都實(shí)現(xiàn),否則子類中還存在抽象方法,所以還是抽象類,也就不能實(shí)例化為對(duì)象。
【示例】定義一個(gè)抽象類,然后使用另一個(gè)類來繼承這個(gè)抽象類并實(shí)現(xiàn)抽象類中的抽象方法。
';
public $url = 'http://c.biancheng.net/php/
';
abstract function title();
abstract function output();
}
class Demo extends Website{
public function title(){
echo '抽象類和抽象方法';
}
public function output(){
echo $this -> name.$this -> url;
}
}
$obj = new Demo();
$obj -> output();
$obj -> title();
?>
運(yùn)行結(jié)果如下:
C語言中文網(wǎng)
http://c.biancheng.net/php/
抽象類和抽象方法
另外需要注意的是,在子類中成員方法的訪問權(quán)限可以和抽象方法的訪問權(quán)限相同,但不能更加嚴(yán)格。而且,子類中成員方法的參數(shù)個(gè)數(shù)應(yīng)該和抽象方法的參數(shù)個(gè)數(shù)一樣。
新聞名稱:PHPabstract:抽象類和抽象方法
本文地址:http://fisionsoft.com.cn/article/cdidhss.html


咨詢
建站咨詢
