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

 更新时间:2018年12月20日 11:26:24   作者:天涯海角路   我要评论
这篇文章主要介绍了PHP面向对象程序设计之接口的继承定义与用法,结合实例形式分析了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安全防范更多要求编程人员对用户输入的各种参数能更细心.
    2011-11-11
  • PHP编程之设置apache虚拟目录

    PHP编程之设置apache虚拟目录

    这篇文章主要为大家详细介绍了设置apache虚拟目录的方法,步骤很简单,希望对大家有用,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • php中类和对象:静态属性、静态方法

    php中类和对象:静态属性、静态方法

    这篇文章主要介绍了php中类和对象:静态属性、静态方法,需要的朋友可以参考下
    2017-04-04
  • php中Ioc(控制反转)和Di(依赖注入)

    php中Ioc(控制反转)和Di(依赖注入)

    最近在使用ThinkPHP5框架,看了下他的源码,发现有很多地方也用到了依赖注入(控制反转),觉得有必要和大家简单聊一聊什么是依赖注入以及怎么使用它。
    2017-05-05
  • 浅析php中jsonp的跨域实例

    浅析php中jsonp的跨域实例

    本篇文章是对php中jsonp的跨域实例进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php 重写分页器 CLinkPager的实例

    php 重写分页器 CLinkPager的实例

    这篇文章主要介绍了php 重写分页器 CLinkPager的实例的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • PHP的Yii框架中Model模型的学习教程

    PHP的Yii框架中Model模型的学习教程

    这篇文章主要介绍了PHP的Yii框架中Model模型的学习教程,Yii框架本身就显庞大,所以模型类也就更加需要很好的编写维护,需要的朋友可以参考下
    2016-03-03
  • php基于dom实现的图书xml格式数据示例

    php基于dom实现的图书xml格式数据示例

    这篇文章主要介绍了php基于dom实现的图书xml格式数据,结合实例形式分析了php数组转换xml格式数据的相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • php笔记之:AOP的应用

    php笔记之:AOP的应用

    你以前听说过AOP(Aspect Oriented Programming)吗?虽然在php方面,好像没有过多的使用,但是在企业级开发中,AOP被广泛使用。我将借此文,向大家介绍PHP方面的AOP
    2013-04-04
  • php基于 swoole 实现的异步处理任务功能示例

    php基于 swoole 实现的异步处理任务功能示例

    这篇文章主要介绍了php基于 swoole 实现的异步处理任务功能,涉及swoole的安装、配置及php调用swoole守护进程监控任务相关实现技巧,需要的朋友可以参考下
    2019-08-08

最新评论