PHP抽象類別

來源:互聯網
上載者:User

標籤:特性   模組   大括弧   php   echo   面積   應用   protect   bar   

對於PHP程式員來說,最為難掌握的一點要數PHP抽象類別應用這一塊知識點。作為一個新手其實也還沒有到要用物件導向的知識去編程,但以後進行開發,使用類進行封裝或者使用介面之類,把程式進行各種模組式的開發,這當然是必然的。

 

在自然語言中,我們理解抽象的概念是,一個物體的一種大的描述,這種描述對某類物體來說是共有的特性。那麼在PHP中也是一樣的,我們把一個類進行抽象,可以指明類的一般行為,這個類應該是一個模板,它指示它的子方法必須要實現的一些行為。

PHP抽象類別應用的定義:

abstract class ClassName{

}

PHP抽象類別應用要點:

  1.定義一些方法,子類必須完全實現這個抽象中所有的方法

  2.不能從抽象類別建立對象,它的意義在於被擴充

  3.抽象類別通常具有抽象方法,方法中沒有大括弧

PHP抽象類別應用重點:

  1.抽象方法不必實現具體的功能,由子類來完成

  2.在子類實現抽象類別的方法時,其子類的可見度必須大於或等於抽象方法的定義

  3.抽象類別的方法可以有參數,也可以為空白

  4.如果抽象方法有參數,那麼子類的實現也必須有相同的參數個數

PHP抽象類別應用樣本:

abstract public function_name(); //注意沒有大括弧

PHP抽象類別規則:

  1. 某個類只要至少含有一個抽象方法,就必須聲明為抽象類別
  2. 抽象方法,不能夠含有函數體
  3. 繼承抽象類別的子類,實現抽象方法的,必須跟該抽象方法具有相同或者更低的存取層級
  4. 繼承抽象類別的子類,如果不實現所有抽象方法,那麼該子類也為抽象類別

 

作為示範,我們來實現一個簡單的抽象類別:計算矩形的面積。這個矩形可以從形狀類擴充。

< ?PHP   abstract class Shape {   abstract protected function get_area();   //和一般的方法不同的是,這個方法沒有大括弧   //你不能建立這個抽象類別的執行個體:$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();   ?>   

這也算是一個簡單的例子,基本上可以說明PHP中抽象類別的用法了,其他的不想多說了。個人覺得抽象類別一般在大的項目才會用吧,因為我覺得它實在是要遵守的”規矩”太多了,用起來不方便!當然這隻是我的意見。還想多說一些,PHP抽象類別應用是單繼承的,也就是說你只能從一個類繼承,而不能一個類繼承了A類,又繼承B類,如果要實現這樣的功能,得使用介面相關的知識了,在此暫時不討論PHP介面的知識!一句話:單繼承多介面

PHP抽象類別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.