解釋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