php实现多重继承实例

栏目: 编程语言 发布于: 2014-04-25 06:00:01

最近一做php开发的朋友问了一个关于php多重继承的问题,两个人说了半天,其实自己也没有搞懂什么是多重继承,今天有空,特意将多重继承这个概念给详细的了解了一下,也来谈谈在php中实现多重继承的一些看法。

说多重继承之前首先说下与其相对的单一继承,单一继承指的是一个类只可以继承自一个父类,从现实生活中举例就是说一个儿子只有一个父亲。那么多重继承就好理解了,多重继承指的是一个类可以同时从多于一个父类继承行为与特征的功能。这个有逆常理,即一个儿子可以有多个父亲。由于多重继承是面向对象编程语言中所特有的特性,所以在php5之前是没有什么继承这一说了。但在php中,即使php5也只是实现了单继承。但是我们可以通过其它特殊的方式实现类的多重继承,比如使用接口(interface),只要把类的特征抽象为接口,并通过实现接口的方式让对象有多重身份,通过这样就可以在php中模拟多重继承了。

下面通过一个实例来说明一下如何在php中实现多重继承,具体代码如下:

<?php

interface UserInterface{ //定义User的接口
	function getname();
}

interface TeacherInterface{ //teacher相关接口
	function getLengthOfService();
}

class User implements UserInterface{ //实现UserInterface接口
	private $name="tom";
	public function getName(){
		return $this->name;
	}
}

class Teacher implements TeacherInterface{ //实现TeacherInterface接口
	private $lengthOfService=5; // 工龄
	public function getLengthOfService(){
		return $this->lengthOfService;
	}
}

// 继承自User类,同时实现了TeacherInterface接口.
class GraduateStudent extends User implements TeacherInterface{
	private $teacher ;
	public function __construct(){
		$this->teacher=new Teacher();
	}
	public function getLengthOfService(){
		return $this->teacher->getLengthOfService();
	}
}

class Act{
	//注意这里的类型提示改成了接口类型
	public static function getUserName(UserInterface $_user){
		echo "Name is " . $_user->getName() ."<br>";
	}
	//这里的类型提示改成了TeacherInterface类型.
	public static function getLengthOfService(TeacherInterface $_teacher){
		echo "Age is " .$_teacher->getLengthOfService() ."<br>";
	}
}

$graduateStudent=new GraduateStudent();
Act::getUserName($graduateStudent);
Act::getLengthOfService($graduateStudent);
//结果正如我们所要的,实现了有多重身份的一个对象

示例运行结果如下:

Name is tom

Age is 5

另外不得不说明的一下是多重继承在实际开发中会增加程式的复杂性与含糊性,非常不利于代码的调试。所以在开发中能够想办法用单继承的来实现的东西最好避免使用多重继承。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。
转载请注明:文章转载自 [http://www.php230.com]
本文标题:php实现多重继承实例
IT技术书籍推荐:
Java编程思想(第4版)
Java编程思想(第4版)
埃史尔 (作者), 陈昊鹏 (译者)
《Java编程思想(第4版)》书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Iava’UO系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。 从《Java编程思想(第4版)》一书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对c、c++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。
最新互联网资讯
互联网资讯
第1181期:祛湿名方:四神汤
发布于 2017-06-29 15:04:57
男人保持精力旺盛的25招,非常硬!
发布于 2017-06-29 15:04:38
颈椎病眩晕,根在脾胃
发布于 2017-06-29 15:04:47