<button id="g80sy"></button>
  • <abbr id="g80sy"></abbr>
  • <button id="g80sy"></button>
    <rt id="g80sy"><delect id="g80sy"></delect></rt>
  • php接口中interface的使用方法

    程序猿 2021-03-01 21:36:13 1769瀏覽 加載中

    對于接口來說,其中是包含了很多方法的集合,有一個方法是需要大家都學習的,那就是interface。這里我們主要講的是它的兩個繼承用法,普通的繼承和多繼承的使用,特別是多繼承方面,初學者還是不明白的。下面我們先就接口簡單介紹,然后帶來對應的使用方法實例。

    1、說明

    接口中的方法都是抽象方法,并且是public。

    2、接口同樣可以繼承接口,但是子類必須實現所有方法

    interface E extends A {
        //接口E繼承接口A,E中必須實現A中所定義的方法
    }

    3、實現多重繼承:

    我們都知道PHP中的類(class)是單繼承的,那是不是就沒有辦法實現多重繼承了呢?答案是否定的.我們可以通過其它特殊的方式實現類的多重 繼承,比如使用接口interface實現,只要把類的特征抽象為接口,并通過實現接口的方式讓對象有多重身份,通過這樣就可以模擬多重繼承了。

    下面是一個用接口(interface)實現多重繼承的例子,源代碼如下:

    <?php
    interface UserInterface{ //定義User的接口
    function getname();
    }
    interface TeacherInterface{ //teacher相關接口
    function getLengthOfService();
    }
    class User implements UserInterface { //實現UserInterface接口
    private $name = "tom";
    public function getName(){
    return $this->name;
    }
    }
    class Teacher implements TeacherInterface { //實現TeacherInterface接口
    private $lengthOfService = 5; // 工齡
    public function getLengthOfService(){
    return $this->lengthOfService;
    }
    }
    // 繼承自User類,同時實現了TeacherInterface接口.
    class GraduateStudent extends User implements TeacherInterface {
    private $teacher ;
    public function __construct(){
    $this->teacher = new Teacher();
    }
    public function getLengthOfService(){
    return $this->teacher->getLengthOfService();
    }
    }
    class Act{
    //注意這里的類型提示改成了接口類型
    public static function getUserName(UserInterface $_user){
    echo "Name is " . $_user->getName() ."<br>";
    }
    //這里的類型提示改成了TeacherInterface類型.
    public static function getLengthOfService(TeacherInterface $_teacher){
    echo "Age is " .$_teacher->getLengthOfService() ."<br>";
    }
    }
    $graduateStudent = new GraduateStudent();
    Act::getUserName($graduateStudent);
    Act::getLengthOfService($graduateStudent);
    //結果正如我們所要的,實現了有多重身份的一個對象.
    ?>

    以上就是php接口中interface的使用方法,大家學會后,可以獨立的嘗試使用一下,看看能否達成繼承的效果。

    標簽: php
    最后修改:2025-03-26 13:04:38

    非特殊說明,本博所有文章均為博主原創(chuàng)。

    主站蜘蛛池模板: 库尔勒市| 甘肃省| 黑山县| 荥阳市| 阿拉善左旗| 栾城县| 抚远县| 常宁市| 穆棱市| 房产| 道孚县| 石门县| 华蓥市| 汉中市| 彰武县| 恩施市| 江北区| 堆龙德庆县| 桂东县| 灵宝市| 东丽区| 湾仔区| 呈贡县| 无锡市| 响水县| 翁牛特旗| 贵定县| 邹平县| 沁源县| 汝阳县| 土默特右旗| 山丹县| 泰和县| 石狮市| 鹤壁市| 宝兴县| 梅州市| 博白县| 仪征市| 临泽县| 崇文区|