PHP中抽象方法、抽象類別和介面的用法

來源:互聯網
上載者:User

標籤:each   class   font   art   ted   介面繼承   完全   test   需要   

在類中,沒有方法體的方法就是抽象方法。abstract 可見度 function 方法名稱(參數1,.....);      // 如果沒有顯示地指定可見度,則預設為public如:public function hello($args);abstract function work();            // 修飾符abstract,也可以省略
abstract class 類名{        屬性;        方法;        抽象方法;}
抽象類別的特點:
    抽象類別不能執行個體化,只能被繼承。
  • 抽象類別不一定有抽象方法,有抽象方法的類,一定是抽象類別。
  • 抽象方法的可見度不能是private
  • 抽象方法在子類中,需要重寫。
什麼時候需要用抽象類別?
  • 有個方法,方法體不知如何寫,子類中還必須有這個方法時,封裝成抽象方法,類為抽象類別。
  • 控制子類中必須封裝某些方法時,可以用抽象方法。
  • 當需要控制類只能被繼承,不能被執行個體化時。
例子:    聲明一個人類,有一個抽象方法,工作。    聲明一個php講師類,重寫方法工作。    abstract class People{        protected $age=22;        public $height=1.70;        abstract function work();    }    class PhpTeacher extends People{        function work(){        }    }如果一個類中,所有的方法都是抽象方法,且沒有成員屬性,則這個類被稱為介面(interface)。
interface Common{    abstract function work();    abstract function test($args);}
介面的作用:雖然PHP的類是單繼承,但可以通過介面來實現多繼承。
介面的繼承(extends):
      介面繼承介面   
interface 介面名稱 extends 父介面名稱注意:類的繼承是單繼承(只能有一個父類),但介面的繼承卻是多繼承,類對介面的實現也是多實現。
介面的實現(implements):
  • 類實現介面      class 類名 implements 介面名稱1,介面名稱2, ...
繼承類同時實現介面:
  • 類繼承父類同時實現介面    class 類名 extends 父類名 implements 介面名稱
    介面是一種特殊的抽象類別,介面中只包含抽象方法,沒有成員屬性。
  • 類實現(implements)介面時,必須完全實現介面中的所有方法;類繼承(extends)抽象類別時,只需對需要用到的抽象方法進行重寫。
  • 抽象類別只能單繼承,但介面卻是多繼承,類對介面的實現也是多實現。

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.