PHP中的多态

更新时间2019年1月21日

在本教程中,我们将学习多态性(希腊语中的“多种形式”)一种命名约定,它可以帮助我们编写更加连贯且易于使用的代码。根据多态性原则,执行类似事务的不同类中的方法应该具有相同的名称。

根据多态性原则,执行类似事务的不同类中的方法应该具有相同的名称。

一个主要的例子是表示几何形状(如矩形,圆形和八边形)的类,这些几何形状在肋的数量和计算它们的面积的公式中彼此不同,但它们都有一个共同的区域,可以是通过一种方法计算。该多态性原理说,在这种情况下,所有的计算面积的方法(和它没有关系的,其形状或类)将具有相同的名称。

例如,我们可以调用计算区域calcArea()的方法,并决定在每个表示形状的类中放置一个具有此名称的方法,该方法根据形状计算区域。现在,每当我们想要计算不同形状的面积时,我们就会调用一个名为calcArea()的方法,而不必过多关注如何实际计算不同形状面积的技术。我们唯一需要知道的是计算区域的方法的名称。

如何实现多态原理?

 

为了实现多态原则,我们可以在抽象类和接口之间进行选择。

为了确保类确实实现了多态性原则,我们可以在抽象类接口的两个选项之一中进行选择。

在下面给出的示例中,名称为Shape的接口将提交实现它的所有类,以定义名为calcArea()的抽象方法。

 

根据,Circle类通过在calcArea()方法中输入计算圆的面积的公式来实现接口。

 

矩形类还实现了Shape接口,但使用适合矩形的计算公式定义方法calcArea()

 

现在,我们可以从具体类创建对象:

 

我们可以确定所有对象都使用名为calcArea()的方法计算区域,无论是矩形对象还是圆形对象(或任何其他形状),只要它们实现Shape接口即可。

现在,我们可以使用calcArea()方法来计算形状的面积:

 

结果:
28.274333882308 
12

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: PHP将多个连续空格减少到一个空格

下一篇: 如何在Magento 2中禁用JavaScript捆绑

登录 评论
avatar