📜  PHP中的抽象类(1)

📅  最后修改于: 2023-12-03 15:03:45.354000             🧑  作者: Mango

PHP中的抽象类

在PHP中,抽象类是一种不能被实例化的类,只能作为其他类的父类来继承使用。它可以包含抽象方法和非抽象方法。抽象方法是没有实现的方法,它只有声明,需要在子类中被重写实现。抽象类的作用是为了代码的复用和规范程序结构。

声明抽象类

使用abstract关键字声明一个抽象类,一般会有若干个抽象方法和非抽象方法:

<?php
abstract class Animal {
    protected $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
    
    abstract public function makeSound();
    
    public function getName() {
        return $this->name;
    }
}
?>
继承抽象类

在子类中使用extends关键字继承抽象类,必须实现抽象类中所有的抽象方法,如果没实现则会报错。非抽象方法可以选择重写,也可以直接使用。

<?php
class Dog extends Animal {
    public function makeSound() {
        return "bark";
    }
}
?>
实例化抽象类

抽象类不能被实例化,否则会报错。需要使用子类去实例化。

<?php
$dog = new Dog("小狗");
echo $dog->getName(); // 输出 小狗
echo $dog->makeSound(); // 输出 bark
?>
总结

抽象类是一种不能被实例化的类,只能被继承使用。它可以包含抽象方法和非抽象方法,抽象方法需要在子类中被实现。抽象类可以实现代码复用和规范程序结构。