多态是指 OOP 能够根据使用类的上下文来重新定义或改变类的性质或行为,或者说接 口的多种不同的实现方式即为多态。把不同的子类对象都当作父类来看,可以屏蔽不同子类 对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
<?php //什么叫做多态,字面意思,多种形态 //一个动作由不同的人去执行,而产生不同的效果或者结果,即为多态。 //一个人通过不同的状态去执行同一种动作,形成不同的结果,也可以称作为多态。 //园丁 剪 修理花草 //理发师 剪 理发 //总裁 剪 裁员 //人 笔记本 运行 win7开机了 //人 台式机 运行 xp开机了 //创建一个接口,来规范运行的方法 interface Computer { public function version(); //这个方法表示采用什么电脑 public function work(); //这台电脑是怎么运行的 } //创建一个笔记本类来实现接口 class NoteComputer implements Computer { public function version() { echo '笔记本'; } public function work() { echo '可以便携式运行win7'; } } //创建一个台式机的类来实现接口 class DesktopComputer implements Computer { public function version() { echo '台式机'; } public function work() { echo '在工作站运行XP'; } } //创建一个用户 class Person { //创建一个方法来接受电脑(笔记本电脑,也可是台式电脑) //怎么接受,将他们的对象传进来就OK啦。 public function _run($type) { echo '这个人的'; $type->version(); $type->work(); } } //多态的原理,就是类都写好了,不要去修改他,只要在类外的调用参数的更改 //而最后的结果也会得到更改,那么这个就是多态。 //有一个接口,两个类,一个是笔记本的类,一个是台式机的类 //创建了笔记本 $notecomputer = new NoteComputer(); //创建台式机 $desktopcomputer = new DesktopComputer(); //创建一个人 $person = new Person(); //使用电脑 $person->_run($notecomputer); //这种传递,叫做对象引用的传递 ?>