<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **interface 接口** >[info]子類實現接口用implements 特點: * 1.接口中只有常量屬性和抽象方法(所有的方法都是抽象方法,就不需要abstract) * 2.接口也是特殊的類 * 3.不能實例化接口類 * 4.子類用implements實現接口,要實現接口中所有的方法,如果沒有實現所有的抽象方法,就必須申明為抽象類 * 5.子類可以實現多個接口;而繼承只能繼承一個父類(如C類繼承A類后就不能繼承B類等其他類了) * 6.子類實現多個接口時子類必須實現多個接口源(父類)的所有抽象方法(如例子3中必須定義eat和say方法) 例子1: ``` interface Person { ???? // public $name = 'zhangsan';?//報錯 ???? // 常量屬性 ???? const HOST = 'localhost'; ???? // 定義抽象方法 ???? public function say(); } class Boy implements Person { ???? public $name = '張三'; ???? public function say() ??? ?{ ???????? ?echo $this->name.'Hello World!!!'; ??? ?} } // 實例化 // $p = new Person;?// 不可以實例化接口 $b = new Boy; $b->say();//張三Hello World!!! ``` 例子2: ``` /* ?實現接口,要實現接口中所有的方法,如果沒有實現所有的抽象方法,就必須申明為抽象類 */ interface Person { ? public function eat(); ? public function study(); } class Boy implements Person { ? // 抽象方法具體化 ? public function eat() ? { ? ? echo '我要去新東方烹飪學院學習炒菜'; ? } ?// 抽象方法具體化 ? public function study() ? { ?? echo '我要去藍翔學習挖掘機技術'; ? } ? // 自定義的方法 ? public function say() ? { ?? echo '我要使用PHP操作挖掘機,炒菜'; ? } } abstract class Girl implements Person { ? public function eat() ?{ ?? echo '6塊錢的麻辣燙好貴,5塊可行'; ? } ?// study()抽象方法缺少所以必須聲明為抽象類 } $b = new Boy; $b->eat(); $b->study(); $b->say(); ``` 例子3: ``` interface A { ? public function say(); } interface B { ? public function eat(); } class C implements A,B { ? public function say() ?{ ? ?echo '昨天晚上春兒和靜靜去澡堂洗白白,春兒給靜靜搓背'; ?} ? public function eat() ? { ?? echo '春兒這兩天有點疲憊,需要吃點匯仁腎寶'; ? } } $c = new C; $c->say(); $c->eat(); ``` **例子:接口對接** >[info] 將老的或者要對接的接口類傳入到新的或者自己的接口類中根據功能進行封裝 ``` //老的代碼????? class User {???? ??? private $name;???? ??? function __construct($name) {???? ??????? $this->name = $name;???? ??? }???? ??? public function getName() {???? ??????? return $this->name;???? ??? }???? }???? ?????????? //新代碼,開放平臺標準接口???? interface UserInterface {???? ??? function getUserName();???? }???? class UserInfo implements UserInterface {???? ??? protected $user;???? ??? function __construct($user) {???? ??????? $this->user = $user;???? ??? }???? ??? public function getUserName() {???? ??????? return $this->user->getName();???? ??? }???? }???? ???????????? $olduser = new User('張三');???? echo $olduser->getName()."n";???? $newuser = new UserInfo($olduser);???? echo $newuser->getUserName()."n"; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看