<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 1881瀏覽 加載中

    對于接口來說,其中是包含了很多方法的集合,有一個方法是需要大家都學習的,那就是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-06-25 07:58:58

    非特殊說明,本博所有文章均為博主原創。

    主站蜘蛛池模板: 宁都县| 乌鲁木齐县| 兴山县| 渝中区| 溧阳市| 桑植县| 太原市| 富阳市| 郯城县| 古田县| 东光县| 玉龙| 永善县| 南平市| 怀宁县| 丹凤县| 平舆县| 藁城市| 山阴县| 延津县| 宁津县| 鱼台县| 揭西县| 崇信县| 蒲城县| 白水县| 宁津县| 松阳县| 上虞市| 鸡西市| 炉霍县| 通化市| 霍城县| 侯马市| 来安县| 溆浦县| 本溪| 隆化县| 花莲县| 青海省| 永顺县|