深入分析php中接口与抽象类的区别

 更新时间:2013年06月08日 08:57:09   作者:  
本篇文章是对php中接口与抽象类的区别进行了详细的分析介绍,需要的朋友参考下
接口和抽象类真的很难区分开,引文他们很相似,方法都没有定义逻辑,都是供子类是想或继承的。区分二者只要记住一句话:接口是规范,类是实现。接口的目的是定义一个规范,大家都遵守这个规范。

也就是说,从目的上可以很清楚地区分接口和抽象类。那么还是有疑问,既然有了借口,那么为什么还必须有抽象类呢?

加入我们要定义一个名为Animal的类,该类有两个子集Dog和Cattle,二者都有两个方法:run()方法和speak()方法。

假定Dog和Cattle的“跑(run)”是相同的,因此run()方法具有相同的业务逻辑;而“叫(speak)”是不同的,因此speak()方法的业务逻辑不同。而且,有一个IAnimal的接口规定必须有这两个方法,这意味着Animal类必须实现这两个方法,同样,Dog和Cattle这两个子类也必须有这两个方法吗,那么我们可以这样定义:
复制代码 代码如下:

<?php
interface IAnimal{
 public function run();
 public function speak();
}
class Animal implements IAnimal{
 public function run(){
  //在这里可以添加一些相同的run逻辑
  return "same run<br />";
 }
 public function speak(){
  //这里可以添加一些相同的speak逻辑
  return "same speak<br />";
 }
}
class Dog extends Animal{
 public function speak(){
  //在这里可以添加一些Dog逻辑
  return "Dog speak<br />";
 }
}
class Cattle extends Animal{
 public function speak(){
  //在这里可以添加一些Cattle逻辑
  return "Cattle speak<br />";
 }
}
$oDog=new Dog();
echo($oDog->run());
echo($oDog->speak());
$oCattle=new Cattle();
echo($oCattle->run());
echo($oCattle->speak());
?>

相关文章

  • php调用自己java程序的方法详解

    php调用自己java程序的方法详解

    这篇文章主要介绍了php调用自己java程序的方法,较为详细的分析了php基于第三方jar包调用java程序以及使用dll动态链接库文件扩展进行java调用两种方法,需要的朋友可以参考下
    2016-05-05
  • 5种PHP创建数组的实例代码分享

    5种PHP创建数组的实例代码分享

    在本文将数组的各种创建方式用PHP实例代码的方式分享给大家,感兴趣的朋友可以了解下
    2014-01-01
  • PHP将Excel导入数据库及数据库数据导出至Excel的方法

    PHP将Excel导入数据库及数据库数据导出至Excel的方法

    这篇文章主要介绍了PHP将Excel导入数据库及数据库数据导出至Excel的方法,涉及php操作数据库及Excel的相关技巧,需要的朋友可以参考下
    2015-06-06
  • php打包网站并在线压缩为zip

    php打包网站并在线压缩为zip

    这篇文章主要介绍了php打包网站并在线压缩为zip的相关资料,具有一定的参考价值,需要的朋友可以参考下
    2016-02-02
  • PHP与Web页面的交互示例详解一

    PHP与Web页面的交互示例详解一

    这篇文章主要介绍了PHP与Web页面的交互示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • PHP.ini安全配置检测工具pcc简单介绍

    PHP.ini安全配置检测工具pcc简单介绍

    这篇文章主要介绍了PHP.ini安全配置检测工具pcc简单介绍,这款工具非常实用,可以检测PHP配置文件中得配置项是否存在安全隐患,并提出相应的配置建议,需要的朋友可以参考下
    2015-07-07
  • PHP中Array相关函数简介

    PHP中Array相关函数简介

    在php教程中数组是种强大的数据类型,他可以做的事情很多,可以存储不同的数据类型在一个数组中,下面我们列出了数组常用的操作,排序,键名对数组排序等做法。
    2016-07-07
  • PHP守护进程的两种常见实现方式详解

    PHP守护进程的两种常见实现方式详解

    这篇文章主要介绍了PHP守护进程的两种常见实现方式,结合具体实例形式分析了php守护进程的原理与相关实现方法与操作注意事项,需要的朋友可以参考下
    2017-09-09
  • php数组函数array_push()、array_pop()及array_shift()简单用法示例

    php数组函数array_push()、array_pop()及array_shift()简单用法示

    这篇文章主要介绍了php数组函数array_push()、array_pop()及array_shift()简单用法,结合实例形式分析了PHP数组函数array_push()、array_pop()及array_shift()操作数组的入栈、出栈、移除等相关实现技巧,需要的朋友可以参考下
    2020-01-01
  • php下载远程文件类(支持断点续传)

    php下载远程文件类(支持断点续传)

    1.功能:支持断点续传的下载,能计算传输率,能控制传输率
    2008-11-11

最新评论