首页 > 编程语言 >php多态

php多态

时间:2023-02-02 14:05:11浏览次数:28  
标签:function working 多态性 多态 echo Iemployee php public

多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。

在面向对象的软件开发中,多态性是最为重要的部分之一。面向对象编程并不只是将相关的方法与数据简单的结合起来,而是采用面向对象编程中的各种要素将现实生活中的各种情况清晰的描述出来。这一小节将对面向对象编程中的多态性作详细的讲解。

什么是多态

 多 态(Polymorphism)按字面上意思理解就是“多种形状”。可以理解为多种表现形式,也即“一个对外接口,多个内部实现方法”。在面向对象的理论 中,多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果。也即不同类的对象收到相同的消息时,将得到不同的结果。

在实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作一个父类来处理,并且可以屏蔽不同子类对象之间所存在的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

下面通过一个例子说明:

interface Iemployee
{
public function working();//定义一个接口的父类
}class painter implements Iemployee
{
public function working()
{
echo '油漆工正在刷漆!
';
}
}class typist implements Iemployee
{
public function working()
{
echo '打字员正在打字!
';
}
}class manager implements Iemployee
{
public function working()
{
echo '经理正在开会!
';
}
}function printworking($obj)
{
if($obj instanceof Iemployee)
{
return $obj->working();
}else
{
echo "Error: 对象错误!";
}
}printworking(new painter());
printworking(new typist());
printworking(new manager());//油漆工正在刷漆!
//打字员正在打字!
//经理正在开会!



标签:function,working,多态性,多态,echo,Iemployee,php,public
From: https://blog.51cto.com/u_2820398/6033526

相关文章

  • PHP读取excel(5)
    如果数据量很大的时候,就需要用PHPExcel迭代器逐行读取,具体代码如下:<?phpheader("Content-Type:text/html;charset=utf-8");//引入读取excel类文件require"./PHPExcel/PHPEx......
  • PHP生成excel(1)
    先到PHPExcel官网下载PHPExcel类把excel类包含进来,然后直接使用<?phprequire"./PHPExcel/PHPExcel.php";//实例化excel类$objPHPExcel=newPHPExcel();//获得当前活动she......
  • PHPMyWind支持Word粘贴
    ​ 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.j......
  • PHP中的include和require
    在PHP中,有两种包含外部文件的方式,分别是include和require。他们之间有什么不同呢?如果文件不存在或发生了错误,require产生E_COMPILE_ERROR级别的错误,程序停止运行。而inclu......
  • C# 多态性
    多态性:分为静态多态和动态多态1.静态多态相同一个方法名 参数的数量或者类型不一样,这就是静态多态。2.动态多态有抽象类:不同的子类去继承抽象类的方法,实现不同的功......
  • PHP 前端大文件上传
    ​ 核心原理: 该项目核心就是文件分块上传。前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。* 如何分片;* 如何合成......
  • php三元运算 ?:与??区别
    三元运算在流程中进程用到,你有犯晕的时候吗?$a?:default与$a??default共同点都是判断$a是否存在,存在返回:$a,否则返回:default$a='';$b=0;$c='0';$d=array();$e=null......
  • Java 多态
    多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译时并不确定,而是在程序运行期间才确定。即一个引用变量倒底会指向哪个类的实例对象......
  • php读取大文件的方法
    1、使用file函数直接读取$starttime=microtime_float();ini_set('memory_limit','-1');$file="testfile.txt";$data=file($file);$line=count($data);//总行数$las......
  • php 3种常见设计模式
    1、工厂模式<?phpnamespaceFacebab;classFactory{staticfunctioncreateDatabase(){returnnewDatabase();}}$db=Facebab\Factory::createDatabas......