当前位置:首页 > PHP

php 实现多态

2026-02-27 15:25:01PHP

多态的概念

多态是面向对象编程的三大特性之一(封装、继承、多态),指同一个方法在不同类中有不同的实现方式。PHP 通过继承和接口实现多态。

php 实现多态

通过继承实现多态

子类可以重写父类的方法,调用时根据对象类型执行对应的方法。

php 实现多态

class Animal {
    public function makeSound() {
        echo "Animal sound";
    }
}

class Dog extends Animal {
    public function makeSound() {
        echo "Bark";
    }
}

class Cat extends Animal {
    public function makeSound() {
        echo "Meow";
    }
}

$animals = [new Dog(), new Cat()];
foreach ($animals as $animal) {
    $animal->makeSound(); // 输出 Bark 和 Meow
}

通过接口实现多态

接口定义方法规范,不同类实现接口并提供具体逻辑。

interface Shape {
    public function calculateArea();
}

class Circle implements Shape {
    private $radius;

    public function __construct($radius) {
        $this->radius = $radius;
    }

    public function calculateArea() {
        return 3.14 * $this->radius * $this->radius;
    }
}

class Square implements Shape {
    private $side;

    public function __construct($side) {
        $this->side = $side;
    }

    public function calculateArea() {
        return $this->side * $this->side;
    }
}

$shapes = [new Circle(5), new Square(4)];
foreach ($shapes as $shape) {
    echo $shape->calculateArea(); // 输出圆的面积和正方形的面积
}

抽象类实现多态

抽象类结合了接口和继承的特性,可以定义抽象方法和具体方法。

abstract class Vehicle {
    abstract public function drive();

    public function startEngine() {
        echo "Engine started";
    }
}

class Car extends Vehicle {
    public function drive() {
        echo "Driving a car";
    }
}

class Bike extends Vehicle {
    public function drive() {
        echo "Riding a bike";
    }
}

$vehicles = [new Car(), new Bike()];
foreach ($vehicles as $vehicle) {
    $vehicle->drive(); // 输出 Driving a car 和 Riding a bike
}

多态的应用场景

  • 插件系统:通过接口统一扩展功能。
  • 支付网关:不同支付方式实现同一接口。
  • 数据存储:支持多种数据库驱动。

多态的核心是通过统一的调用方式实现不同的行为,提高代码的灵活性和可扩展性。

标签: 多态php
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

实现基础搜索功能 使用PHP和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE…

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php 无限分类的实现

php 无限分类的实现

无限分类的实现方法 无限分类通常用于构建树形结构数据,如商品分类、多级菜单等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 邻接列表是最简单的实现方式,通过在每个节点中存…

php 实现评论

php 实现评论

实现 PHP 评论功能 数据库设计 创建数据库表存储评论数据,通常包含以下字段: id:评论唯一标识 user_id:用户ID content:评论内容 created_at:评论时间 parent…