• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP面向对象程序设计之接口的继承定义与用法详解

    本文实例讲述了PHP面向对象程序设计之接口的继承定义与用法。分享给大家供大家参考,具体如下:

    在PHP5中,接口是可以继承自另外一个接口的。这样代码的重用更有效了。要注意只有接口和接口之间使用 继承关键字 extends。类实现接口必须实现其抽象方法,使用实现关键字 implements

    下面的这个例子定义接口User,User有两个抽象方法 getName和setName。 又定义了接口VipUser, 继承自User接口,并增加了和折扣相关的方法getDiscount。

    最后定义了类 Vip ,实现了VipUser接口。并实现了其中的三个方法。

    ?php
    interface User {
      public function getName();
      public function setName($_name);
    }
    interface VipUser extends User {
      public function getDiscount(); //添加了获得折扣的抽象方法.
    }
    class Vip implements VipUser {
      private $name;
      private $discount = 0.8;// 定义折扣变量
      public function getName(){ //实现getName方法
        return $this->name;
      }
      public function setName($_name){//实现setName方法
        $this->name = $_name;
      }
      public function getDiscount(){//实现折扣方法.
        return $this->discount;
      }
    }
    ?>
    
    

    接口可以实现多继承,这是接口很特殊的地方。注意下面的代码和用法。

    ?php
    interface User {
      public function getName();
      public function setName($_name);
    }
    interface Administrator {
      public function setNews($_news);
    }
    //注意这里的多继承.
    interface NewsAdministrator extends User,Administrator{
    }
    class NewsAdmin implements NewsAdministrator { //实现接口
      public function getName(){
        //.........
      }
      public function setName($_name){
        //.........
      }
      public function setNews($_news){
        //.........
      }
    }
    ?>
    
    

    抽象类实现接口,可以不实现其中的抽象方法,而将抽象方法的实现交付给具体能被实例化的类去处理。

    ?php
    interface User {
      public function getName();
      public function setName($_name);
    }
    //AbstractNormalUser 只实现了 User接口中的一个方法,
    abstract class AbstractNormalUser{
      protected $name;
      public function getName(){
        return $this->name;
      }
    }
    //这里实现了接口的另外一个方法.
    class NormalUser extends AbstractNormalUser {
      public function setName($_name){
        $this->name = $_name;
      }
    }
    $normalUser = new NormalUser();
    $normalUser->setName("tom");
    echo "name is ".$normalUser->getName();
    ?>
    
    

    运行结果:

    name is tom

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
    • 详解php中的类与对象(继承)
    • php面向对象全攻略 (七) 继承性
    • PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
    • PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
    • PHP面向对象继承用法详解(优化与减少代码重复)
    • PHP面向对象程序设计OOP继承用法入门示例
    • PHP面向对象程序设计继承用法简单示例
    • PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】
    • PHP 对象继承原理与简单用法示例
    上一篇:PHP面向对象程序设计之多态性的应用示例
    下一篇:PHP设计模式之模板模式定义与用法详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP面向对象程序设计之接口的继承定义与用法详解 PHP,面向,对象,程序设计,