Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Đa hình (Polymorphism) trong PHP

Polymorphism (đa hình): các lớp khác nhau triển khai cùng tên phương thức nhưng hành vi khác nhau. Code client gọi phương thức chung mà không cần biết lớp cụ thể.

Ví dụ với Interface

<?php
interface Machine {
    public function calcTask();
}
class Circle implements Machine {
    private $radius;
    public function __construct($r) { $this->radius = $r; }
    public function calcTask() { return $this->radius ** 2 * pi(); }
}
class Rectangle implements Machine {
    private $w, $h;
    public function __construct($w, $h) { $this->w=$w; $this->h=$h; }
    public function calcTask() { return $this->w * $this->h; }
}
$c = new Circle(3);
$r = new Rectangle(3,4);
echo $c->calcTask(); // 28.27
echo $r->calcTask(); // 12
?>

Giải thích

Interface Machine buộc các lớp con triển khai calcTask(). Lớp Circle tính diện tích tròn, Rectangle tính diện tích chữ nhật. Client gọi calcTask() thống nhất.

Đảm bảo đa hình bằng interface hoặc abstract class.