`

PHP的抽象类、接口的区别和选择

阅读更多

区别:

1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。

2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型)

 

  1. <?php   
  2. abstract class Father {  
  3.     function meth1() {  
  4.         echo "meth1...<br>";  
  5.     }  
  6.     abstract function meth2();  
  7.     public $var1="var1";  
  8.     public static $var2="var2";  
  9.     const Var3="Var3";  
  10. }  
  11. class Son extends Father {  
  12.     function meth2() {  
  13.         echo "meth2 of Son...<br>";  
  14.     }  
  15. }  
  16. $s=new Son();  
  17. echo $s->var1."<br>";  
  18. echo Father::$var2."<br>";  
  19. echo Father::Var3."<br>";  
  20.   
  21.   
  22. Interface IFather {  
  23.     //public $iVar1="iVar1";        此处接口定义中不能包含成员变量  
  24.     //public static $iVar2="iVar2"; 此处接口定义中不能包含静态变量  
  25.     const iVar3="iVar3";  
  26.     function iMeth1();  
  27. }  
  28. Class ISon implements IFather {  
  29.     function iMeth1() {  
  30.         echo "iMeth1...<br>";  
  31.     }  
  32. }  
  33. $is=new ISon();  
  34. echo IFather::iVar3;  
  35. ?>  


3、接口没有构造函数,抽象类可以有构造函数。

 

4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。

5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。

 

抽象类还是接口。

  • 如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。
  • 如果必须从多个来源继承行为,就使用接口。
  • 如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。


来源:http://blog.csdn.net/fanteathy/article/details/7309966

分享到:
评论

相关推荐

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

    本文实例分析了PHP中抽象类、接口的区别与选择。分享给大家供大家参考,具体如下: 区别: 1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。 2、...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics