`
wbj0110
  • 浏览: 1558223 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

php中抽象类和接口的概念和区别

阅读更多

 

  1. //抽象类的定义:  
  2. abstract class ku{  //定义一个抽象类  
  3.   abstract function kx();  
  4.   ......  
  5. }  
  6.   
  7. function aa extends ku{  
  8.   //实现抽象类的方法  
  9.   function kx(){  
  10.     echo 'sdsf';  
  11.   }  
  12. }  
  13.   
  14. //使用方法  
  15.   
  16. $aa=new aa;  
  17. $aa->kx();  
  18.   
  19. //1.定义一些方法,子类必须完全实现这个抽象中所有的方法  
  20. //2.不能从抽象类创建对象,它的意义在于被扩展  
  21. //3.抽象类通常具有抽象方法,方法中没有大括号  
  22. //4.抽象方法不必实现具体的功能,由子类来完成  
  23. //5.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义  
  24. //6.抽象类的方法可以有参数,也可以为空  
  25. //7.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数  
  26.   
  27.   
  28.   
  29.   
  30.   
  31. //////////////////////////////接口类的定义:  
  32. interface Shop{  
  33.       public   function buy($gid);  
  34.       public   function sell($gid);  
  35.       abstract function view($gid);  
  36. }  
  37. //如果要使用接口,必须定义接口类中的所以方法少一个都不可以(abstract除外)。  
  38. //这样如果在一个大项目中不管别人怎么去做下面的方法,但是他必须实现本接口中的所有方法才可以!  
  39.   
  40.   
  41. //例:实现上面的接口的一种方法  
  42. class BaseShop implements Shop{  
  43.    public function buy($gid){  
  44.       echo '你购买了ID为 :' . $gid . '的商品';  
  45.    }  
  46.    public function sell($gid){  
  47.       echo '你购卖ID为 :' . $gid . '的商品';  
  48.    }  
  49.    public function view($gid){  
  50.       echo '你浏览了ID为 :' . $gid . '的商品';  
  51.    }  
  52. }  
  53.   
  54.   
  55. //接口的多重继承示例:  
  56. <?php  
  57. interface staff_i1{ //接口1  
  58.   function setID();  
  59.   function getID();  
  60. }  
  61.   
  62. interface staff_i2{ //接口2  
  63.   function setName();  
  64.   function getName();  
  65. }  
  66.   
  67. class staff implements staff_i1,staff_i2{  
  68.   private $id;  
  69.   private $name;  
  70.   function setID($id){  
  71.     $this->id = $id;  
  72.   }  
  73.   
  74.   function getID(){  
  75.     return $this->id;  
  76.   }  
  77.   
  78.   function setName($name){  
  79.     $this->name = $name;  
  80.   }  
  81.   
  82.   function getName(){  
  83.     return $this->name;  
  84.   }  
  85.   
  86.   function otherFunc(){ //这是一个接口中不存在的方法  
  87.     echo “Test”;  
  88.   }  
  89. }  
  90. ?>  

          

 

 

 他们的不同点:

1。抽象类中可以有非抽象的方法而接口中只能够有抽象的方法!

2。一个类可以实现多个接口,而一个类只能继承一个抽象类!

3。接口的使用方式通过implements关键字进行,抽象类则是通过继承extends关键字进行!

分享到:
评论

相关推荐

    浅析php中抽象类和接口的概念以及区别

    复制代码 代码如下://抽象类的定义:abstract class ku{ //定义一个抽象类 abstract function kx(); ……}function aa extends ku{ //实现抽象类的方法 function kx(){ echo ‘sdsf’; }}//使用方法$aa=new ...

    PHP抽象类和接口用法实例详解

    本文实例讲述了PHP抽象类和接口用法。分享给大家供大家参考,具体如下: 前言 对于oop,估计大多数人并不陌生。有些人除PHP外也学习不少其他语言,会发现php的不同之处,可能语法极其丑陋,但并不妨碍它成为世界上...

    PHP抽象类与接口的区别详解

    对于面向对象开发,抽象类与接口这两个东西是比较难理解的;就算是对于有一定经验的程序员来说也如此。下面根据自己的理解来讲述一下这两个东西,如有什么不对的,还望不吝赐教。 抽象类:是基于类来说,其本身就是...

    PHP中抽象类,接口功能、定义方法示例

    本文实例讲述了PHP中抽象类,接口功能、定义方法。分享给大家供大家参考,具体如下: 这里先介绍接口,因为在我最近看的好几本php工具书中都没有提到抽象类。 本人也觉得,在理解了接口后抽象类也非常好理解。 例子...

    php抽象类和接口知识点整理总结

    主要介绍了php抽象类和接口知识点,整理总结了php抽象类与接口的概念、原理、操作技巧及相关使用注意事项,需要的朋友可以参考下

    PHP中抽象类、接口的区别与选择分析

    主要介绍了PHP中抽象类、接口的区别与选择,较为详细的分析了PHP中抽象类与接口的概念、用法、区别与使用注意事项,需要的朋友可以参考下

    PHP抽象类与接口的区别实例详解

    本文实例讲述了PHP抽象类与接口的区别。分享给大家供大家参考,具体如下: 抽象类abstract 概念 定义为抽象的类不能被实例化。任何一个类,如果有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的类。 ...

    详解PHP的抽象类和抽象方法以及接口总结

    PHP中的抽象类和抽象方法自己用的不多,但是经常会在项目中看到别人使用,同样,今天在看别人的代码的时候,发现使用了抽象类,就总结下: 抽象类: 1、如果一个类中有一个方法是抽象方法,则这个类就是抽象类; 2...

    php5的抽象方法和抽象类的理解

    php5新增的类特性,很有帮助理解的... 博文链接:https://purpen.iteye.com/blog/100210

    php 接口类与抽象类的实际作用

    interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个...

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

    接口和抽象类真的很难区分开,引文他们很相似,方法都没有定义逻辑,都是供子类是想或继承的。区分二者只要记住一句话:接口是规范,类是实现。接口的目的是定义一个规范,大家都遵守这个规范。也就是说,从目的上...

    用于支付的抽象的PHP库.zip

    随着php使用的广泛,使用不同数据库也是十分常见的。php需要支持更多的数据库连接接口,如果只是通过单一的接口针对单一的...(3)速度快,由于PDO是用C语言编写且编译进php的,所以比那些用php编写的抽象类快得多。

    深入解读php中关于抽象(abstract)类和抽象方法的问题分析

    在面向对象(OOP)语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法作为外部...抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字。 2

    PHP OPP机制和模式简介(抽象类、接口和契约式编程)

    是指方法的定义中剔除了方法体之后的签名。它包括存取级别、函数关键字、函数名称和参数。他不包含({})或者括号内部的任何代码。例如下面的代码就是一个方法原型: 复制代码 代码如下:public fu

Global site tag (gtag.js) - Google Analytics