PHP新手开发教程-OOP基础全掌握

没错!在正方形类中,calculateArea() 方法的逻辑是 $side \times side$,而圆形类则使用 $\pi \times r^2$。即使方法名相同,实现方式也会根据对象而改变。这就是多态性的实际应用。🎭最后一个支柱:抽象☁️抽象是指隐藏复杂的“如何做”,只显示必要的“做什么”。想想咖啡机☕。要喝拿铁,你只需按下一个按钮。你不需要知道确切的水压、锅炉的温度,或者咖啡豆的研磨方式。你只需要与简单的界面(按钮)交互。在 PHP 中,我们使用抽象类来创建一个模板,强制子类遵循某些规则,但并不定义如何满足这些规则。

abstract class Appliance {
    // Every appliance MUST have a turnOn method
    abstract public function turnOn();
    
    // But they can all share this common function
    public function plugIn() {
        return "Appliance is plugged into the wall.";
    }
}

class Toaster extends Appliance {
    public function turnOn() {
        return "Heating up the coils! 🔥";
    }
}

请注意,您不能直接从抽象类创建对象(您不能创建一个名为“通用电器”的对象)。您只能创建特定类型的电器,例如烤面包机。

整合所有内容:图书馆系统

我们已经介绍了四大支柱!现在,让我们构建这个“图书馆系统”,看看它们是如何协同工作的。首先,我们将定义一个基本的 Book 类。我们需要确保书名和作者是受保护的,这样它们就不会被意外地更改为无意义的内容。

我们将使用私有属性和构造函数在创建书籍时设置其详细信息。

class Book {
    private $title;
    private $author;
    private $isAvailable = true;

    public function __construct($title, $author) {
        $this->title = $title;
        $this->author = $author;
    }

    // A "Getter" to see the title since it is private
    public function getTitle() {
        return $this->title;
    }

    public function getAvailability() {
        return $this->isAvailable;
    }
}

现在,我们来思考一下借书的逻辑。我们需要一个方法来检查书籍是否可用。如果可用,则将其标记为不可用;如果已被借出,则通知用户。

您会如何在 borrowBook() 方法中编写逻辑来检查 $isAvailable 状态并将其更改为 false 呢?

×
PHP新手开发教程-OOP基础全掌握

PHP新手开发教程-OOP基础全掌握

PHP 中的面向对象编程 (OOP) 是...

查看更多

Modulo马杜罗操作符讲解和余数的周期性

To understand w …