多态性的实现 php,简单介绍在PHP5.0中多态性的具体实现方案

php是一种新型的CGI程序编写语言,易学易用,运行速度快,可以方便快捷地编写出功能强大,运行速度非常的快。今天小编要为大家分享的一篇教程,那就是:简单介绍在PHP5.0中多态性的具体实现方案。

d09f7c285319343dd52829d7f139cf92.png

在这篇教程中,小编主要是向大家介绍一下PHP5.0中所存在的优点和缺点以及在PHP5中究竟如何使用多态性呢?除此之外,小编还要和大家一起讨论一下多态性的概念及其在面向对象设计中的应用这几个部分。如果大家都有兴趣的话,那么现在我们就一起来学习一下吧。

大家都应该知道,在PHP的最新发行版本中都已经实现了对迟绑定支持的功能了。当然啦,大家应该在使用其迟绑定功能的时候,还会发现这一个功能还存在着非常多的问题。假如说大家使用的PHP,是一些更加旧版本的话(就比如说,小编的服务器上所运行的PHP工具就是5.0.1版本),那么大家就应该会发现在这其中已经缺乏对于迟绑定的支持。所以大家在这篇教程中,一定要注意所列举出来的编程代码有可能没有办法工作在大家所特定的PHP5版本里面,这点大家一定要特别注意哟!

一、PHP5以及其多态性

在这篇教程中,小编最想和大家讨论的一个问题那就是面向对象编程中最为重要的其中一个部分--设计多态性。为了可以和大家更加的说明一下这个问题,小编在这里特意使用了PHP5。所以大家在继续阅读这篇教程之前,首先一点要明确一点,那就是这篇教程并不是全部都是有关于PHP内容的。虽然说这一种编程语言在以前的两个主要版本中,在快速开发方面已经取得非常大的进展。但是大家应该会发现,在其与更加成熟的语言就比如说java或者是C++相匹敌之前,它对于对象的支持还有必要经历一段历程,才可以更加的成熟哟。

假如说大家是一位面向对象编程的入门者,那么在阅读这一篇教程之前,小编有必要和你说明一点,那就是这篇教程有可能不太适合你哟。为什么小编会这样说呢?那是因为多态性这一部分知识还是比较特别,怎样特别呢?那就是大家一旦理解了多态性这一部分知识,大家就将永远不会忘记这些内容了。假如说大家想要更加简单了解一点对象设计以及编程相关的知识,并且当某些人说"某一个对象是多态的"的时候,还没有非常的清楚这究竟是什么意思的话,那么小编可以肯定的和你说,这篇教程非常的适合你哟。

直到这篇教程的最后,大家就应该会知道究竟什么是多态性以及如何才可以将它应用到面向对象的设计里面去。另外一个方面,大家还会了解PHP5中对象编程的优点以及缺点。

二、何谓多态性?

现在小编就来和大家解释一下,究竟什么是多态性呢?多态性,简单来说这就是来自于dictionary.com的定义是"以不一样的形式,类型或者是阶段出现在同种组织中或者是独立的组织中,然而这两者是并不存在根本区别。"由这一个定义,我们就可以这样子认为了,多态性就是通过多种状态或阶段来描述一模一样对象的一种编程方式。但是大家要记住一点,那就是它的真正意义在于:在实际开发中,我们仅仅只需要关注一个基类或者是接口的编程,然而大家就没有必要去担心一个对象所属于的具体类(即class)。

假如说大家是非常熟悉设计模式,即使仅仅只是有一个初步了解,那么大家也应该会了解这一个概念。然而事实上,多态性就有可能是基于模式设计编程中的一个最伟大的工具。它就允许我们以一种逻辑的方式来组织相类似的对象,从而实现在具体编码的时候就没有必要担心对象的具体类型;而且,我们仅仅只需要对于一个所期望的基类编程或者是接口就可以了。在这里,大家还要记住一点,那就是一个应用程序越抽象,那么它就会显得越灵活--然而多态性就是对于行为加以抽象的最好的方式之一。

现在小编就来给大家举一个示范例子吧,具体的示范例子如下:让大家来考虑一下一个类,这个类的名字为Person。接下来我们就可以使用称为David,Alejandro以及Charles的类来子类化Person。除此之外,Person还有一个抽象方法,名字为AcceptFeedback(),全部的子类通通都要实现这一个方法。那么这样子的话,就意味着任意一个使用基类Person的子类的代码都可以调用方法AcceptFeedback()。大家就没有必要检查这一个对象究竟是一个Alejandro亦或是一个David了,我们仅仅只需要知道它是一个Person就已经足够了。最终得出来的结果就是,大家的编程代码仅仅只需要关注一下"最小公分母"-Person类就可以了。

在这一个示范例子中的Person类也可以被创建为一个接口。当然啦,与上面的相比还是存在着一些区别的。具体是什么区别呢?主要的区别就是在于:一个接口并没有给出任何行为,然而仅仅只是确定了一组规则。一个Person接口要求的是"大家一定要支持AddFeedback()这种方法",然而一个Person类可以为我们提供一些AddFeedback()方法的缺省代码-大家对于这个方法的理解可以是"假如说大家不选择支持AddFeedback()方法的话,那么大家就应该提供一种缺省实现。"至于怎样来选择基类或者是接口则并不是这票教程主要讲述的内容了;但是,一般情况下,大家就有需要通过基类来实现一个缺省的方法。假如说大家可以简单地勾勒出大家的类所需要实现的一组期望的功能,那么这个时候大家也可以使用一个接口来实现的哟。

三、多态性设计的应用

那么我们怎样应用多态性的设计呢?现在我们就继续使用Person基类的示范例子吧,让小编来向大家分析一个非多态性的实现方法。在下面的示范例子中,小编主要就是使用了不一样类型的Person对象--其实这就是一种十分不理想的编程方式。但是大家在这里要注意了,那就是实际的Person类已经被省略。直至到目前为止,我们仅仅所关心的就是代码调用的这一个问题而已。具体的编程代码,如图所示:

99a105d157941a10df50ba1a8bd78e4a.png

小编结语:

今天的编程语言教程,小编就已经介绍完毕了,主要是向大家介绍一下在PHP5.0中多态性的具体实现方案,希望这对大家有所帮助。课课家会一直更新关于编程语言的文章,请继续关注我们的网站:课课家教育。谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值