纵有疾风起
人生不言弃

OOP之接口技术的应用细节详解

<?php
/*接口:接口其实就是一种特殊的抽象类,而抽象类又是一种特殊的类;
    接口与抽象类相比有哪些不同:
    1.使用interface 关键字来定义接口,而不使用abstract class等词;
    2.接口中的方法必须全部是抽象方法,不能包含非抽象的方法;
        所以在接口中无须使用abstract来修饰抽象方法,使用的话会报错;
    3.接口中的成员属性必须全部为常量(不能包含变量);
    4.所有的权限必须是公有的(public);
   接口应用的一些细节:
   1.接口可以继承接口(但是只有扩展的关系,没有覆盖;)
   2.可以使用一个类来实现接口中的全部方法,也可以使用一个抽象类来实现接口中的部分方法;
   3.类与接口、抽象类与接口其中包含实现(覆盖重写)抽象方法的关系,所以就不能使用extends关键字
   (使用extends会报错),而是用implements来实现;
   4.extends子类在PHP中继承时只能有一个父类,而一个子类在继承一个类的同时可以继承多个接口(先继承后实现)
*/

  interface demo{
     const NAME=”刘仁”;
     const AGE=22;
     const SEX=”男”;
          
           function say();

           function eat();
  }
  //接口继承接口
  interface bibi{
      function run();
  }
    interface demo1 extends demo{
            function test();
    }
    //声明一个普通的类
    class hello{
        private $name;
        function word(){
            echo “Hello word<br>”;
        }
    }
  //类来实现接口
  class demo2 implements demo1{
      function say(){
          echo “11111111111111<br>”;
      }
      function eat(){
          echo “2222222222222<br>”;
      }
      function test(){
          echo “testtesttesttest<br>”;
      }
  }
  //抽象类来实现接口中的部分方法,此处用extends也会报错
  abstract class demo3 implements demo{
      
  }
  //继承一个类的同时可以继承多个接口,用”,”隔开;
  class demo4 extends hello implements demo,bibi{
      function say(){
          echo “实现demo接口的说话方法!<br>”;
      }
      function eat(){
          echo “实现demo接口中的吃饭方法!<br>”;
      }
      function run(){
          echo “实现bibi接口中的跑步方法!<br>”;
      }
  }
  $obj= new demo4();
  $obj->say();
  $obj->eat();
  $obj->run();
  $obj->word();
?> 

原文链接:https://blog.csdn.net/living_ren/article/details/75165450

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » OOP之接口技术的应用细节详解
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录