解释PHP中的多态性。
首先,多态性源于希腊词Poly(意思是“多”)和morphism(意思是“形态”)。
多态性描述了面向对象编程中的一种现象,其中不同类中的方法执行类似操作应该具有相同的名称。多态性本质上是一种OOP模式,它允许许多具有不同功能的类实现或共享一个公共接口。多态性的优点是,在不同类中编写的代码与其所属的类无关,因为它们的使用方式相同。为了确保类实现多态性准则,我们可以选择抽象类或接口中的一个。
那么,让我们借助接口来实现多态性原则。
接口 接口类似于类,但它不能包含代码。接口可以定义方法名和参数,但不能定义方法的内容。实现接口的任何类都必须实现接口中定义的所有方法。
示例
<?php
interface Machine {
public function calcTask();
}
class Circle implements Machine {
private $radius;
public function __construct($radius){
$this -> radius = $radius;
}
public function calcTask(){
return $this -> radius * $this -> radius * pi();
}
}
class Rectangle implements Machine {
private $width;
private $height;
public function __construct($width, $height){
$this -> width = $width;
$this -> height = $height;
}
public function calcTask(){
return $this -> width * $this -> height;
}
}
$mycirc = new Circle(3);
$myrect = new Rectangle(3,4);
echo $mycirc->calcTask();
echo $myrect->calcTask();
?>输出
28.274 12
解释
名为“Machine”的接口要求所有实现它的类都定义一个名为calcTask()的抽象方法。相应地,Circle类通过定义带有相应主体代码的calcTask()方法来实现该接口。Rectangle类也实现了Machine接口,但是它定义的calcTask()方法与Circle类中calcTask()方法的主体代码不同。多态性准则指出,在这种情况下,所有计算任务的方法都应该具有相同的名称。现在,无论何时我们需要为不同的类计算任务,我们都将调用名为calcTask()的方法,而无需过多考虑如何为不同的机器实际计算任务的细节。我们唯一需要知道的是计算任务的方法名称。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP