PHP类继承 extends使用介绍


在PHP中,`extends` 关键字用于实现类的继承。继承是面向对象编程中的一个核心概念,它允许我们定义一个类(子类或派生类)来继承另一个类(父类或基类)的属性和方法。使用继承,我们可以重用、扩展或修改父类的行为。

下面是一个简单的PHP类继承的例子,展示了如何使用 `extends` 关键字:


<?php
// 定义父类
class Animal {
    public function eat() {
        echo "This animal eats food.\n";
    }
}

// 定义子类,继承自Animal类
class Dog extends Animal {
    // 覆写父类的eat方法
    public function eat() {
        // 调用父类的eat方法(可选)
        parent::eat();
        echo "Dogs love meat!\n";
    }

    // 定义子类特有的方法
    public function bark() {
        echo "Woof!\n";
    }
}

// 创建Dog类的实例
$myDog = new Dog();

// 调用继承自Animal的方法
$myDog->eat();

// 调用Dog类特有的方法
$myDog->bark();
?>

在这个例子中,`Dog` 类通过 `extends` 关键字继承了 `Animal` 类。这意味着 `Dog` 类自动获得了 `Animal` 类中定义的 `eat` 方法。然后,`Dog` 类通过定义自己的 `eat` 方法来覆写(或重写)了父类的 `eat` 方法。此外,`Dog` 类还定义了一个自己特有的方法 `bark()`。

注意,子类可以访问父类中定义的公有(`public`)和保护(`protected`)属性和方法,但不能直接访问私有(`private`)属性和方法。如果需要访问私有属性或方法,通常需要通过父类中提供的公有或保护方法来实现。

此外,使用 `parent` 关键字可以在子类中调用父类的构造函数或其他方法。但请注意,如果子类定义了构造函数,并且需要调用父类的构造函数,那么需要使用 `parent::__construct()` 显式调用。如果子类没有定义构造函数,那么会自动调用父类的构造函数(如果存在)。