中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PHP中使用抽象類和接口

發布時間:2021-05-10 17:23:04 來源:億速云 閱讀:141 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何在PHP中使用抽象類和接口,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

PHP開發環境搭建工具有哪些

一、phpStudy,是一個新手入門最常用的開發環境。二、WampServer,WampServer也同樣的也是和phpStudy一樣操作簡單對小白比較友好。三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的建站集成軟件包;四、MAMP,MAMP分為兩種MAMP和MAMP Pro for Mac。五、寶塔面板,寶塔面板是一款服務器管理軟件,支持windows和linux系統。六、UPUPW,UPUPW是目前Windows平臺下最具特色的Web服務器PHP套件。

抽象類

抽象類里面可以有非抽象方法。但接口里只能有抽象方法。 聲明方法的存在而不去實現它的類被叫做抽像類(abstract class),它用于要創建一個體現某些基本行為的類,并為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽像類,并讓它指向具體子類的一個實例。不能有抽像構造函數或抽像靜態方法。Abstract 類的子類為它們父類中的所有抽像方法提供實現,否則它們也是抽像類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。

先看一個普通類:

<?php
class appletree{
  privated $catch;
  piblic function tree($sweet){
    $this->catch=$sweet;
    return $this->catch;
  }
$apple=new appletree();
$eat=$apple->tree('this apple is sweet');
echo $eat;
?>

再看一個抽象類:

//appletree.php:
<?php
abstract class appletree{
  privated $catch;
  abstract public function tree1($sweet);
  public function tree2(){
    echo'smell';
  }
  public function _construct(){
    //......
    }
}
?>
<?php
include_once('appletree.php');
class anothertree extends appletree{
  public function tree1($sweet){
    $this->catch='this apple is';
    return $this->catch.$sweet;
    }
  }
$apple=new appletree();
echo $apple->tree1('sweet');
?>

從普通類和抽象類可以看出:

抽象類和抽象方法前面定義必須有abstract,調用為extends。抽象類中可以有具體方法,并且具體方法可以在抽象類中實例化,然而抽象方法不可以在抽象類中實例化。

接口

oop模式中接口也是比不可少的一部分,接口(interface)是抽像類的變體。在接口中,所有方法都是抽像的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽像的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現了該接口的類的任何對像上調用接口的方法。由于有抽像類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。

具體例子如下:

//fruit.php

<?php
interface fruit{
  public function apple($sweet);
  public function orange();
  }
?>
<?php
include_once('fruit.php');
class fruittree implements fruit{
  privated $catch;
  public function apple($sweet){
    $this->catch='this fruit is';
    rerurn $this->catch.$sweet;
    }
  public function orange(){
    return 'this orange is sweet';
    }
  }
$tree=new fruittree();
echo $tree->apple('sweet');
echo $tree->orange();
?>

接口和常量

一個網上看到的例子:(接口名和常量之間要用間隔符‘::'隔開,接口中可以用靜態常量,變量不可以)

<?php
interface TestInterface
{
  const CONSTVAR = 'aaa';
  static staticvar = 111;
  public function alert($str);
}
class TestClass implements TestInterface
{
  const CONSTVAR = 'bbb';
  public function __CONSTRUCT()
  {
    echo TestInterface::CONSTVAR;
  }
  public function alert($str)
  {
    echo $str;
  }
  public function __DESTRUCT()
  {
  }
}
$test1 = new TestClass();
?>

我們可以看出接口和抽象類的區別:

1、接口中沒有具體方法,都是抽象方法。
2、接口調用是implements,抽象類是extends。
3、接口中不可以聲明成員變量(包括類靜態變量),但是可以聲明類常量。抽象類中可以聲明各種類型成員變量,實現數據的封裝。
4、接口沒有構造函數,抽象類可以有構造函數。
5、接口中的方法默認都是public類型的,而抽象類中的方法可以使用private,protected,public來修飾。
6、一個類可以同時實現多個接口,但一個類只能繼承于一個抽象類。

上述就是小編為大家分享的如何在PHP中使用抽象類和接口了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

南江县| 阿尔山市| 万州区| 鸡东县| 北宁市| 瑞昌市| 抚顺县| 彰化县| 焦作市| 江西省| 新宾| 溆浦县| 萝北县| 搜索| 进贤县| 金塔县| 阳朔县| 韩城市| 平山县| 宿州市| 新田县| 伊春市| 阜宁县| 获嘉县| 宜春市| 蕉岭县| 光山县| 南城县| 五大连池市| 通州区| 融水| 永德县| 广东省| 衢州市| 铜陵市| 印江| 汶川县| 牙克石市| 循化| 佛教| 威远县|