Home > Article > Backend Development > Analyzing the concept of polymorphism in PHP
Polymorphism concepts and code examples in PHP
In object-oriented programming, polymorphism is an important concept. It allows different objects to respond differently to the same message. In PHP, polymorphism can be achieved through interfaces and inheritance. Next we will analyze the concept of polymorphism in PHP through specific code examples.
First, we create an interface Shape
, which contains a calculateArea
method:
interface Shape { public function calculateArea(); }
Next, we create two classes Circle
and Square
respectively implement the Shape
interface:
class Circle implements Shape { private $radius; public function __construct($radius) { $this->radius = $radius; } public function calculateArea() { return round(pi() * pow($this->radius, 2), 2); } } class Square implements Shape { private $sideLength; public function __construct($sideLength) { $this->sideLength = $sideLength; } public function calculateArea() { return pow($this->sideLength, 2); } }
Next, we create a function getShapeArea
, which accepts implementation Take the object of the Shape
interface as a parameter and call its calculateArea
method to calculate the area:
function getShapeArea(Shape $shape) { return $shape->calculateArea(); }
Now, we can create Circle
and Square
objects and call the getShapeArea
function to calculate their areas:
$circle = new Circle(5); $square = new Square(4); echo "圆的面积:" . getShapeArea($circle) . ";"; // 输出:圆的面积:78.54; echo "正方形的面积:" . getShapeArea($square) . "。"; // 输出:正方形的面积:16。
In the code example above, Circle
and Square# The ## classes respectively implement the
Shape interface and cover the
calculateArea method to calculate the area based on the specific shape. By calling the
getShapeArea function and passing in different objects, we achieve polymorphism based on different object instances.
The above is the detailed content of Analyzing the concept of polymorphism in PHP. For more information, please follow other related articles on the PHP Chinese website!