源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-11-14 10:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:深入分析php中接口与抽象类的区别
接口和抽象类真的很难区分开,引文他们很相似,方法都没有定义逻辑,都是供子类是想或继承的。区分二者只要记住一句话:[b]接口是规范,类是实现。[/b]接口的目的是定义一个规范,大家都遵守这个规范。 也就是说,从目的上可以很清楚地区分接口和抽象类。那么还是有疑问,既然有了借口,那么为什么还必须有抽象类呢? 加入我们要定义一个名为Animal的类,该类有两个子集Dog和Cattle,二者都有两个方法:run()方法和speak()方法。 假定Dog和Cattle的“跑(run)”是相同的,因此run()方法具有相同的业务逻辑;而“叫(speak)”是不同的,因此speak()方法的业务逻辑不同。而且,有一个IAnimal的接口规定必须有这两个方法,这意味着Animal类必须实现这两个方法,同样,Dog和Cattle这两个子类也必须有这两个方法吗,那么我们可以这样定义:
[u]复制代码[/u] 代码如下:
<?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()); ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部