最新消息:

php面向对象开发示例 抽象类与继承

PHP教程 admin 2827浏览 0评论

各位php爱好者,大家好。不久前,站长在“初学者如何学习php的具体技术”一文中,提到了面向对象学习。尽管站长尽可能的用详细的文字对为什么要使用面向对象思想开发进行了说明,然而只有文字而无代码,大家可能还是无法很好的理解。所以,今天站长将利用一个简单的例子来向大家说明。 首先,让我们先来回顾一下php中对于抽象类的介绍: PHP5支持抽象类和抽象方法。抽象类不能直接被实例化,你必须先继承该抽象类,然后再实例化子类。抽象类中 至少要包含一个抽象方法。如果类方法被声明为抽象的,那么其中就不能包括具体的功能实现。 继承一个抽象类的时候,子类必须实现抽象类中的所有抽象方法;另外,这些方法的可见性 必须和抽象类中一样(或者更为宽松)。如果抽象类中某个抽象方法被声明为protected,那么子类中实现的方法就应该声明为protected或者public,而不 能定义为private。  然后,我们回顾一下在“初学者如何学习php的具体技术”一文中站长所介绍的开发方式。我所提到的是:架构师负责定义抽象类并实现类与类之间访问与传递、核心程序员负责实现抽象类中定义的具体方法即代码封装、底层程序员负责具体的业务逻辑并调用由核心程序员封装的代码来实现具体功能。 第三步,我们假设,现在我们的开发团队由3人组成:架构师–赵,核心程序员–钱,底层程序员–孙。按照上面的分工,架构师–赵先来定义抽象类。经过若干天的冥思苦想,我们的赵工程师终于定义出了如下的一个抽象类–命名为abstract.class.php: <?php abstract class AbstractClass { //子类中由核心程序实现这些方法 abstract protected function getValue(); abstract public function outputValue(); } ?> 由于是个简单例子,只能委屈一下赵工了,当然我们知道经验丰富的赵工肯定不会只定义如此简单的抽象类。 在一系列的抽象类定义完成后,赵工和项目经理制订出了一个完整的开发文档,其中明确告知了我们的核心程序员,抽象类(实际开发中不止一个)中有多少 方法要实现,以及在子类中使用什么限定符来声明这些方法;文档还告诉我们的底层程序员,他可以从核心类中调用哪些方法。 ok,现在,架构师的工作完成了,接下来就是核心程序员–钱工,底层程序员–孙工的工作了。 核心程序员,从开发文档中得知了自己需要如何去继承抽象类并且实现其中的方法(当然实际开发中会有多个子类,这里举例只举一个)。 钱工需要定义一个核心类lib,该类继承AbstractClass,根据文档,我们将其命名为lib.class.php,代码如下: <?php include ‘abstract.class.php’; class lib extends AbstractClass{ var $string=”hello world!”; protected function getValue(){ return $this->string; } function outputValue(){ echo $this->getValue(); } } ?> 钱工运用他的聪明才智和丰富的经验,以迅雷不及掩耳之势完成一个核心库的编码工作,o(∩_∩)o! […]

转载请注明:爱开源 » php面向对象开发示例 抽象类与继承

您必须 登录 才能发表评论!