PHP介面入門分析執行個體

來源:互聯網
上載者:User
1.快速入門案例:

案例1:

   
new Camera();  $camera1->start();  $phone1=new Phone();  $phone1->start();?>

效果:

相機開始工作手機開始工作

來自

2.介面使用的基本文法:

interface介面名

{

//屬性

//方法

}

->介面中的方法沒有方法體

->如何?介面

Class 類名implements 介面名

{

}

**可以實現多個介面

Class 類名implements 介面名1,介面名2……

{

}

->介面的作用:聲明一些方法,供其它類來實現,介面還體現編程中我們希望的效果:高內聚低耦合 的特點 ,見圖1

深入討論-介面interface

什麼時候用介面?

1.定規範

2.定下規範,讓別的程式人來實現

3.當多個類,它們之間平級的關係,這些類都要去實習某個功能,只是實現方式不一樣

細節-interface

1.介面不能執行個體化;

2.介面中所有方法都不能有方法體;

3.一個類可以實現多個介面,但以","隔開;

4.介面中可以有屬性(區別於方法),但必須為常量,並且是public

案例2:

繼承的常量為:".IsUSB::A;//常量引用方法:介面名::常量名稱  }}$test1=new Test();$test1->aa();  echo "
沒有繼承的常量為:".IsUSB::A;//常量引用方法:介面名::常量名稱?>

5.介面的方法都是public的,即沒有protected,以及private,如果不寫,預設為public;

6.介面不能繼承其它類,但可以繼承其它介面;並且一個介面可以繼承多個介面,而一個類不能繼承多個類;一個類可以同時繼承某個類同時實現介面;

例如:inerface 介面名 extends 介面名1,介面名2…… 2


案例3:

";  }} class Test extends Class1 implements IsUSB03 {  public function __construct()  { echo "介面IsUSB03繼承了介面IsUSB01以及介面IsUSB02
";
  }  public function a()  { echo "實現介面IsUSB01的a()
"; } public function b() { echo "實現介面IsUSB02的b()
"; } }$test1=new Test();$test1->a();$test1->b();$test1->TST(); ?>

結果:

介面IsUSB03繼承了介面IsUSB01以及介面IsUSB02

實現介面IsUSB01的a()

實現介面IsUSB02的b()

繼承類名為Class1

來自

其中,介面IsUSB03繼承了IsUSB01以及IsUSB02,因為是介面繼承介面,不需要實現方法,而,Test類引用了IsUSB03介面,則需要實現方法。

3.繼承與介面區別

實現介面可以看作,對單一繼承類的一種補充,同時,繼承是層次式的,不太靈活,多層次繼承如果修改某個類,就會打破繼承的平衡,而介面沒有那麼麻煩,較為靈活

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.